class freemarker.core.GetOptionalTemplateMethod implements freemarker.template.TemplateMethodModelEx
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.core.GetOptionalTemplateMethod
  super_class: java.lang.Object
{
  static final freemarker.core.GetOptionalTemplateMethod INSTANCE;
    descriptor: Lfreemarker/core/GetOptionalTemplateMethod;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final freemarker.core.GetOptionalTemplateMethod INSTANCE_CC;
    descriptor: Lfreemarker/core/GetOptionalTemplateMethod;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final java.lang.String OPTION_ENCODING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "encoding"

  private static final java.lang.String OPTION_PARSE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "parse"

  private static final java.lang.String RESULT_INCLUDE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "include"

  private static final java.lang.String RESULT_IMPORT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "import"

  private static final java.lang.String RESULT_EXISTS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "exists"

  private final java.lang.String methodName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 47
            new freemarker.core.GetOptionalTemplateMethod
            dup
         1: .line 48
            ldc "get_optional_template"
         2: .line 47
            invokespecial freemarker.core.GetOptionalTemplateMethod.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.GetOptionalTemplateMethod.INSTANCE:Lfreemarker/core/GetOptionalTemplateMethod;
         3: .line 49
            new freemarker.core.GetOptionalTemplateMethod
            dup
         4: .line 50
            ldc "getOptionalTemplate"
         5: .line 49
            invokespecial freemarker.core.GetOptionalTemplateMethod.<init>:(Ljava/lang/String;)V
            putstatic freemarker.core.GetOptionalTemplateMethod.INSTANCE_CC:Lfreemarker/core/GetOptionalTemplateMethod;
         6: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // freemarker.core.GetOptionalTemplateMethod this
        start local 1 // java.lang.String builtInVarName
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* builtInVarName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
         2: .line 64
            return
        end local 1 // java.lang.String builtInVarName
        end local 0 // freemarker.core.GetOptionalTemplateMethod this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lfreemarker/core/GetOptionalTemplateMethod;
            0    3     1  builtInVarName  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      builtInVarName  

  public java.lang.Object exec(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=12, args_size=2
        start local 0 // freemarker.core.GetOptionalTemplateMethod this
        start local 1 // java.util.List args
         0: .line 67
            aload 1 /* args */
            invokeinterface java.util.List.size:()I
            istore 2 /* argCnt */
        start local 2 // int argCnt
         1: .line 68
            iload 2 /* argCnt */
            iconst_1
            if_icmplt 2
            iload 2 /* argCnt */
            iconst_2
            if_icmple 3
         2: .line 69
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iload 2 /* argCnt */
            iconst_1
            iconst_2
            invokestatic freemarker.core._MessageUtil.newArgCntError:(Ljava/lang/String;III)Lfreemarker/template/TemplateModelException;
            athrow
         3: .line 72
      StackMap locals:
      StackMap stack:
            invokestatic freemarker.core.Environment.getCurrentEnvironment:()Lfreemarker/core/Environment;
            astore 3 /* env */
        start local 3 // freemarker.core.Environment env
         4: .line 73
            aload 3 /* env */
            ifnonnull 6
         5: .line 74
            new java.lang.IllegalStateException
            dup
            ldc "No freemarer.core.Environment is associated to the current thread."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 79
      StackMap locals: freemarker.core.Environment
      StackMap stack:
            aload 1 /* args */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast freemarker.template.TemplateModel
            astore 5 /* arg */
        start local 5 // freemarker.template.TemplateModel arg
         7: .line 80
            aload 5 /* arg */
            instanceof freemarker.template.TemplateScalarModel
            ifne 9
         8: .line 81
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iconst_0
            aload 5 /* arg */
            invokestatic freemarker.core._MessageUtil.newMethodArgMustBeStringException:(Ljava/lang/String;ILfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModelException;
            athrow
         9: .line 83
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment top freemarker.template.TemplateModel
      StackMap stack:
            aload 5 /* arg */
            checkcast freemarker.template.TemplateScalarModel
            aconst_null
            aload 3 /* env */
            invokestatic freemarker.core.EvalUtil.modelToString:(Lfreemarker/template/TemplateScalarModel;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
            astore 6 /* templateName */
        start local 6 // java.lang.String templateName
        10: .line 86
            aload 3 /* env */
            aload 3 /* env */
            invokevirtual freemarker.core.Environment.getCurrentTemplate:()Lfreemarker/template/Template;
            invokevirtual freemarker.template.Template.getName:()Ljava/lang/String;
            aload 6 /* templateName */
            invokevirtual freemarker.core.Environment.toFullTemplateName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* absTemplateName */
        start local 4 // java.lang.String absTemplateName
        11: .line 87
            goto 16
        end local 4 // java.lang.String absTemplateName
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment top freemarker.template.TemplateModel java.lang.String
      StackMap stack: freemarker.template.MalformedTemplateNameException
        12: astore 7 /* e */
        start local 7 // freemarker.template.MalformedTemplateNameException e
        13: .line 88
            new freemarker.core._TemplateModelException
            dup
        14: .line 89
            aload 7 /* e */
            ldc "Failed to convert template path to full path; see cause exception."
        15: .line 88
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 7 // freemarker.template.MalformedTemplateNameException e
        end local 6 // java.lang.String templateName
        end local 5 // freemarker.template.TemplateModel arg
        start local 4 // java.lang.String absTemplateName
        16: .line 94
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String
      StackMap stack:
            iload 2 /* argCnt */
            iconst_1
            if_icmple 22
        17: .line 95
            aload 1 /* args */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast freemarker.template.TemplateModel
            astore 6 /* arg */
        start local 6 // freemarker.template.TemplateModel arg
        18: .line 96
            aload 6 /* arg */
            instanceof freemarker.template.TemplateHashModelEx
            ifne 20
        19: .line 97
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iconst_1
            aload 6 /* arg */
            invokestatic freemarker.core._MessageUtil.newMethodArgMustBeExtendedHashException:(Ljava/lang/String;ILfreemarker/template/TemplateModel;)Lfreemarker/template/TemplateModelException;
            athrow
        20: .line 99
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String top freemarker.template.TemplateModel
      StackMap stack:
            aload 6 /* arg */
            checkcast freemarker.template.TemplateHashModelEx
            astore 5 /* options */
        end local 6 // freemarker.template.TemplateModel arg
        start local 5 // freemarker.template.TemplateHashModelEx options
        21: .line 100
            goto 23
        end local 5 // freemarker.template.TemplateHashModelEx options
        22: .line 101
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String
      StackMap stack:
            aconst_null
            astore 5 /* options */
        start local 5 // freemarker.template.TemplateHashModelEx options
        23: .line 104
      StackMap locals: freemarker.template.TemplateHashModelEx
      StackMap stack:
            aconst_null
            astore 6 /* encoding */
        start local 6 // java.lang.String encoding
        24: .line 105
            iconst_1
            istore 7 /* parse */
        start local 7 // boolean parse
        25: .line 106
            aload 5 /* options */
            ifnull 48
        26: .line 107
            aload 5 /* options */
            invokestatic freemarker.template.utility.TemplateModelUtils.getKeyValuePairIterator:(Lfreemarker/template/TemplateHashModelEx;)Lfreemarker/template/TemplateHashModelEx2$KeyValuePairIterator;
            astore 8 /* kvpi */
        start local 8 // freemarker.template.TemplateHashModelEx2$KeyValuePairIterator kvpi
        27: .line 108
            goto 47
        28: .line 109
      StackMap locals: java.lang.String int freemarker.template.TemplateHashModelEx2$KeyValuePairIterator
      StackMap stack:
            aload 8 /* kvpi */
            invokeinterface freemarker.template.TemplateHashModelEx2$KeyValuePairIterator.next:()Lfreemarker/template/TemplateHashModelEx2$KeyValuePair;
            astore 9 /* kvp */
        start local 9 // freemarker.template.TemplateHashModelEx2$KeyValuePair kvp
        29: .line 113
            aload 9 /* kvp */
            invokeinterface freemarker.template.TemplateHashModelEx2$KeyValuePair.getKey:()Lfreemarker/template/TemplateModel;
            astore 11 /* optNameTM */
        start local 11 // freemarker.template.TemplateModel optNameTM
        30: .line 114
            aload 11 /* optNameTM */
            instanceof freemarker.template.TemplateScalarModel
            ifne 35
        31: .line 115
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iconst_1
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        32: .line 116
            ldc "All keys in the options hash must be strings, but found "
            aastore
            dup
            iconst_1
        33: .line 117
            new freemarker.core._DelayedAOrAn
            dup
            new freemarker.core._DelayedFTLTypeDescription
            dup
            aload 11 /* optNameTM */
            invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
            invokespecial freemarker.core._DelayedAOrAn.<init>:(Ljava/lang/Object;)V
            aastore
        34: .line 115
            invokestatic freemarker.core._MessageUtil.newMethodArgInvalidValueException:(Ljava/lang/String;I[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
            athrow
        35: .line 119
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String freemarker.template.TemplateHashModelEx java.lang.String int freemarker.template.TemplateHashModelEx2$KeyValuePairIterator freemarker.template.TemplateHashModelEx2$KeyValuePair top freemarker.template.TemplateModel
      StackMap stack:
            aload 11 /* optNameTM */
            checkcast freemarker.template.TemplateScalarModel
            invokeinterface freemarker.template.TemplateScalarModel.getAsString:()Ljava/lang/String;
            astore 10 /* optName */
        end local 11 // freemarker.template.TemplateModel optNameTM
        start local 10 // java.lang.String optName
        36: .line 122
            aload 9 /* kvp */
            invokeinterface freemarker.template.TemplateHashModelEx2$KeyValuePair.getValue:()Lfreemarker/template/TemplateModel;
            astore 11 /* optValue */
        start local 11 // freemarker.template.TemplateModel optValue
        37: .line 124
            ldc "encoding"
            aload 10 /* optName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        38: .line 125
            aload 0 /* this */
            ldc "encoding"
            aload 11 /* optValue */
            invokevirtual freemarker.core.GetOptionalTemplateMethod.getStringOption:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)Ljava/lang/String;
            astore 6 /* encoding */
        39: .line 126
            goto 47
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String freemarker.template.TemplateHashModelEx java.lang.String int freemarker.template.TemplateHashModelEx2$KeyValuePairIterator freemarker.template.TemplateHashModelEx2$KeyValuePair java.lang.String freemarker.template.TemplateModel
      StackMap stack:
        40: ldc "parse"
            aload 10 /* optName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        41: .line 127
            aload 0 /* this */
            ldc "parse"
            aload 11 /* optValue */
            invokevirtual freemarker.core.GetOptionalTemplateMethod.getBooleanOption:(Ljava/lang/String;Lfreemarker/template/TemplateModel;)Z
            istore 7 /* parse */
        42: .line 128
            goto 47
        43: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iconst_1
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
        44: .line 130
            ldc "Unsupported option "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 10 /* optName */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc "; valid names are: "
            aastore
            dup
            iconst_3
        45: .line 131
            new freemarker.core._DelayedJQuote
            dup
            ldc "encoding"
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_4
            ldc ", "
            aastore
            dup
            iconst_5
            new freemarker.core._DelayedJQuote
            dup
            ldc "parse"
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            bipush 6
            ldc "."
            aastore
        46: .line 129
            invokestatic freemarker.core._MessageUtil.newMethodArgInvalidValueException:(Ljava/lang/String;I[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
            athrow
        end local 11 // freemarker.template.TemplateModel optValue
        end local 10 // java.lang.String optName
        end local 9 // freemarker.template.TemplateHashModelEx2$KeyValuePair kvp
        47: .line 108
      StackMap locals:
      StackMap stack:
            aload 8 /* kvpi */
            invokeinterface freemarker.template.TemplateHashModelEx2$KeyValuePairIterator.hasNext:()Z
            ifne 28
        end local 8 // freemarker.template.TemplateHashModelEx2$KeyValuePairIterator kvpi
        48: .line 138
      StackMap locals:
      StackMap stack:
            aload 3 /* env */
            aload 4 /* absTemplateName */
            aload 6 /* encoding */
            iload 7 /* parse */
            iconst_1
            invokevirtual freemarker.core.Environment.getTemplateForInclusion:(Ljava/lang/String;Ljava/lang/String;ZZ)Lfreemarker/template/Template;
            astore 8 /* template */
        start local 8 // freemarker.template.Template template
        49: .line 139
            goto 55
        end local 8 // freemarker.template.Template template
      StackMap locals:
      StackMap stack: java.io.IOException
        50: astore 9 /* e */
        start local 9 // java.io.IOException e
        51: .line 140
            new freemarker.core._TemplateModelException
            dup
        52: .line 141
            aload 9 /* e */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "I/O error when trying to load optional template "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 4 /* absTemplateName */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
        53: .line 142
            ldc "; see cause exception"
        54: .line 140
            aastore
            invokespecial freemarker.core._TemplateModelException.<init>:(Ljava/lang/Throwable;[Ljava/lang/Object;)V
            athrow
        end local 9 // java.io.IOException e
        start local 8 // freemarker.template.Template template
        55: .line 145
      StackMap locals: freemarker.template.Template
      StackMap stack:
            new freemarker.template.SimpleHash
            dup
            aload 3 /* env */
            invokevirtual freemarker.core.Environment.getObjectWrapper:()Lfreemarker/template/ObjectWrapper;
            invokespecial freemarker.template.SimpleHash.<init>:(Lfreemarker/template/ObjectWrapper;)V
            astore 9 /* result */
        start local 9 // freemarker.template.SimpleHash result
        56: .line 146
            aload 9 /* result */
            ldc "exists"
            aload 8 /* template */
            ifnull 57
            iconst_1
            goto 58
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String freemarker.template.TemplateHashModelEx java.lang.String int freemarker.template.Template freemarker.template.SimpleHash
      StackMap stack: freemarker.template.SimpleHash java.lang.String
        57: iconst_0
      StackMap locals: freemarker.core.GetOptionalTemplateMethod java.util.List int freemarker.core.Environment java.lang.String freemarker.template.TemplateHashModelEx java.lang.String int freemarker.template.Template freemarker.template.SimpleHash
      StackMap stack: freemarker.template.SimpleHash java.lang.String int
        58: invokevirtual freemarker.template.SimpleHash.put:(Ljava/lang/String;Z)V
        59: .line 149
            aload 8 /* template */
            ifnull 62
        60: .line 150
            aload 9 /* result */
            ldc "include"
            new freemarker.core.GetOptionalTemplateMethod$1
            dup
            aload 0 /* this */
            aload 8 /* template */
            invokespecial freemarker.core.GetOptionalTemplateMethod$1.<init>:(Lfreemarker/core/GetOptionalTemplateMethod;Lfreemarker/template/Template;)V
            invokevirtual freemarker.template.SimpleHash.put:(Ljava/lang/String;Ljava/lang/Object;)V
        61: .line 166
            aload 9 /* result */
            ldc "import"
            new freemarker.core.GetOptionalTemplateMethod$2
            dup
            aload 0 /* this */
            aload 3 /* env */
            aload 8 /* template */
            invokespecial freemarker.core.GetOptionalTemplateMethod$2.<init>:(Lfreemarker/core/GetOptionalTemplateMethod;Lfreemarker/core/Environment;Lfreemarker/template/Template;)V
            invokevirtual freemarker.template.SimpleHash.put:(Ljava/lang/String;Ljava/lang/Object;)V
        62: .line 182
      StackMap locals:
      StackMap stack:
            aload 9 /* result */
            areturn
        end local 9 // freemarker.template.SimpleHash result
        end local 8 // freemarker.template.Template template
        end local 7 // boolean parse
        end local 6 // java.lang.String encoding
        end local 5 // freemarker.template.TemplateHashModelEx options
        end local 4 // java.lang.String absTemplateName
        end local 3 // freemarker.core.Environment env
        end local 2 // int argCnt
        end local 1 // java.util.List args
        end local 0 // freemarker.core.GetOptionalTemplateMethod this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   63     0             this  Lfreemarker/core/GetOptionalTemplateMethod;
            0   63     1             args  Ljava/util/List;
            1   63     2           argCnt  I
            4   63     3              env  Lfreemarker/core/Environment;
           11   12     4  absTemplateName  Ljava/lang/String;
           16   63     4  absTemplateName  Ljava/lang/String;
            7   16     5              arg  Lfreemarker/template/TemplateModel;
           10   16     6     templateName  Ljava/lang/String;
           13   16     7                e  Lfreemarker/template/MalformedTemplateNameException;
           21   22     5          options  Lfreemarker/template/TemplateHashModelEx;
           23   63     5          options  Lfreemarker/template/TemplateHashModelEx;
           18   21     6              arg  Lfreemarker/template/TemplateModel;
           24   63     6         encoding  Ljava/lang/String;
           25   63     7            parse  Z
           27   48     8             kvpi  Lfreemarker/template/TemplateHashModelEx2$KeyValuePairIterator;
           29   47     9              kvp  Lfreemarker/template/TemplateHashModelEx2$KeyValuePair;
           36   47    10          optName  Ljava/lang/String;
           30   36    11        optNameTM  Lfreemarker/template/TemplateModel;
           37   47    11         optValue  Lfreemarker/template/TemplateModel;
           49   50     8         template  Lfreemarker/template/Template;
           55   63     8         template  Lfreemarker/template/Template;
           51   55     9                e  Ljava/io/IOException;
           56   63     9           result  Lfreemarker/template/SimpleHash;
      Exception table:
        from    to  target  type
          10    11      12  Class freemarker.template.MalformedTemplateNameException
          48    49      50  Class java.io.IOException
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
      Name  Flags
      args  

  private boolean getBooleanOption(java.lang.String, freemarker.template.TemplateModel);
    descriptor: (Ljava/lang/String;Lfreemarker/template/TemplateModel;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=3, args_size=3
        start local 0 // freemarker.core.GetOptionalTemplateMethod this
        start local 1 // java.lang.String optionName
        start local 2 // freemarker.template.TemplateModel value
         0: .line 186
            aload 2 /* value */
            instanceof freemarker.template.TemplateBooleanModel
            ifne 5
         1: .line 187
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iconst_1
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 188
            ldc "The value of the "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* optionName */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc " option must be a boolean, but it was "
            aastore
            dup
            iconst_3
         3: .line 189
            new freemarker.core._DelayedAOrAn
            dup
            new freemarker.core._DelayedFTLTypeDescription
            dup
            aload 2 /* value */
            invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
            invokespecial freemarker.core._DelayedAOrAn.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_4
            ldc "."
            aastore
         4: .line 187
            invokestatic freemarker.core._MessageUtil.newMethodArgInvalidValueException:(Ljava/lang/String;I[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
            athrow
         5: .line 191
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            checkcast freemarker.template.TemplateBooleanModel
            invokeinterface freemarker.template.TemplateBooleanModel.getAsBoolean:()Z
            ireturn
        end local 2 // freemarker.template.TemplateModel value
        end local 1 // java.lang.String optionName
        end local 0 // freemarker.core.GetOptionalTemplateMethod this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lfreemarker/core/GetOptionalTemplateMethod;
            0    6     1  optionName  Ljava/lang/String;
            0    6     2       value  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
            Name  Flags
      optionName  
      value       

  private java.lang.String getStringOption(java.lang.String, freemarker.template.TemplateModel);
    descriptor: (Ljava/lang/String;Lfreemarker/template/TemplateModel;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=3, args_size=3
        start local 0 // freemarker.core.GetOptionalTemplateMethod this
        start local 1 // java.lang.String optionName
        start local 2 // freemarker.template.TemplateModel value
         0: .line 195
            aload 2 /* value */
            instanceof freemarker.template.TemplateScalarModel
            ifne 5
         1: .line 196
            aload 0 /* this */
            getfield freemarker.core.GetOptionalTemplateMethod.methodName:Ljava/lang/String;
            iconst_1
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 197
            ldc "The value of the "
            aastore
            dup
            iconst_1
            new freemarker.core._DelayedJQuote
            dup
            aload 1 /* optionName */
            invokespecial freemarker.core._DelayedJQuote.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_2
            ldc " option must be a string, but it was "
            aastore
            dup
            iconst_3
         3: .line 198
            new freemarker.core._DelayedAOrAn
            dup
            new freemarker.core._DelayedFTLTypeDescription
            dup
            aload 2 /* value */
            invokespecial freemarker.core._DelayedFTLTypeDescription.<init>:(Lfreemarker/template/TemplateModel;)V
            invokespecial freemarker.core._DelayedAOrAn.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_4
            ldc "."
            aastore
         4: .line 196
            invokestatic freemarker.core._MessageUtil.newMethodArgInvalidValueException:(Ljava/lang/String;I[Ljava/lang/Object;)Lfreemarker/template/TemplateModelException;
            athrow
         5: .line 200
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            checkcast freemarker.template.TemplateScalarModel
            aconst_null
            aconst_null
            invokestatic freemarker.core.EvalUtil.modelToString:(Lfreemarker/template/TemplateScalarModel;Lfreemarker/core/Expression;Lfreemarker/core/Environment;)Ljava/lang/String;
            areturn
        end local 2 // freemarker.template.TemplateModel value
        end local 1 // java.lang.String optionName
        end local 0 // freemarker.core.GetOptionalTemplateMethod this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lfreemarker/core/GetOptionalTemplateMethod;
            0    6     1  optionName  Ljava/lang/String;
            0    6     2       value  Lfreemarker/template/TemplateModel;
    Exceptions:
      throws freemarker.template.TemplateModelException
    MethodParameters:
            Name  Flags
      optionName  
      value       
}
SourceFile: "GetOptionalTemplateMethod.java"
NestMembers:
  freemarker.core.GetOptionalTemplateMethod$1  freemarker.core.GetOptionalTemplateMethod$2
InnerClasses:
  freemarker.core.GetOptionalTemplateMethod$1
  freemarker.core.GetOptionalTemplateMethod$2
  public abstract KeyValuePair = freemarker.template.TemplateHashModelEx2$KeyValuePair of freemarker.template.TemplateHashModelEx2
  public abstract KeyValuePairIterator = freemarker.template.TemplateHashModelEx2$KeyValuePairIterator of freemarker.template.TemplateHashModelEx2