package com.l7tech.message;

import com.l7tech.common.http.HttpConstants;
import com.l7tech.common.io.EmptyInputStream;
import com.l7tech.common.mime.ByteArrayStashManager;
import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.common.mime.MimeBody;
import com.l7tech.common.mime.StashManager;
import com.l7tech.util.CausedIllegalStateException;
import com.l7tech.util.ConfigFactory;
import com.l7tech.xml.MessageNotSoapException;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

public final class Message implements Closeable {
   public static final String PROPERTY_ENABLE_ORIGINAL_DOCUMENT;
   private static boolean a;
   private boolean b;
   private c c;
   private Map<MessageRole, Message> d;
   private HttpRequestKnob e;
   private HttpServletRequestKnob f;
   private HttpResponseKnob g;
   private HttpServletResponseKnob h;
   private TcpKnob i;
   private XmlKnob j;
   private SoapKnob k;
   private MimeKnob l;
   private SecurityKnob m;
   private JsonKnob n;
   private boolean o;
   private HeadersKnob p;
   private HttpCookiesKnob q;
   private static final String[] s;

   public static long getMaxBytes() {
      return MimeBody.getFirstPartMaxBytes();
   }

   public Message() {
      this.b = a;
      this.d = new HashMap<>();
   }

   public Message(StashManager var1, ContentTypeHeader var2, InputStream var3) throws IOException {
      this.b = a;
      this.d = new HashMap<>();
      this.initialize(var1, var2, var3);
   }

   public Message(Document var1, long var2) {
      this.b = a;
      this.d = new HashMap<>();
      this.initialize(var1, var2);
   }

   public Message(Document var1) {
      this.b = a;
      this.d = new HashMap<>();
      this.initialize(var1, 0L);
   }

   public boolean isInitialized() {
      return this.o;
   }

   public void initialize(StashManager var1, ContentTypeHeader var2, InputStream var3, long var4) throws IOException {
      List var6 = this.c();

      try {
         if (this.c != null) {
            this.c.close();
         }
      } catch (IOException var15) {
         throw a(var15);
      }

      this.c = null;
      this.a();

      try {
         this.c = new d(this, var1, var2, var3, var4);
      } finally {
         for (e var11 : var6) {
            this.c = var11.reattach(this, this.c);
         }

         this.a();
      }

      this.o = true;
   }

   public void initialize(StashManager var1, ContentTypeHeader var2, InputStream var3) throws IOException {
      this.initialize(var1, var2, var3, 0L);
   }

   public void initialize(Document var1, long var2) {
      this.initialize(var1, ContentTypeHeader.XML_DEFAULT, var2);
   }

   public void initialize(Document var1) {
      this.initialize(var1, ContentTypeHeader.XML_DEFAULT, 0L);
   }

   public void initialize(Document var1, ContentTypeHeader var2, long var3) {
      try {
         List var5 = this.c();

         try {
            if (this.c != null) {
               this.c.close();
            }
         } catch (IOException var8) {
            throw a(var8);
         }

         this.c = null;
         this.a();
         this.c = new d(this, new ByteArrayStashManager(), var2, new EmptyInputStream(), var3);
         this.c = new XmlFacet(this, this.c);
         this.a();

         for (e var7 : var5) {
            this.c = var7.reattach(this, this.c);
         }

         this.getXmlKnob().setDocument(var1);
         this.o = true;
      } catch (IOException var9) {
         throw new RuntimeException(var9);
      } catch (SAXException var10) {
         throw new RuntimeException(var10);
      }
   }

   public void initialize(Document var1, ContentTypeHeader var2) {
      this.initialize(var1, var2, 0L);
   }

   public void initialize(ContentTypeHeader var1, byte[] var2, long var3) throws IOException {
      try {
         List var5 = this.c();

         try {
            if (this.c != null) {
               this.c.close();
            }
         } catch (IOException var8) {
            throw a(var8);
         }

         this.c = null;
         this.c = new d(this, new ByteArrayStashManager(), var1, new ByteArrayInputStream(var2), var3);
         this.a();

         for (e var7 : var5) {
            this.c = var7.reattach(this, this.c);
         }

         this.o = true;
      } catch (IOException var9) {
         throw new RuntimeException(var9);
      }
   }

   public void initialize(ContentTypeHeader var1, byte[] var2) throws IOException {
      this.initialize(var1, var2, 0L);
   }

   public void setEnableOriginalDocument() {
      this.b = true;
   }

   public boolean isEnableOriginalDocument() {
      return this.b;
   }

   public MimeKnob getMimeKnob() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 04: ifnull 10
      // 07: aload 0
      // 08: getfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 0b: areturn
      // 0c: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aload 0
      // 11: ldc com/l7tech/message/MimeKnob
      // 13: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 16: checkcast com/l7tech/message/MimeKnob
      // 19: astore 1
      // 1a: aload 1
      // 1b: ifnonnull 78
      // 1e: aload 0
      // 1f: getfield com/l7tech/message/Message.o Z
      // 22: istore 2
      // 23: aload 0
      // 24: getstatic com/l7tech/common/mime/ContentTypeHeader.OCTET_STREAM_DEFAULT Lcom/l7tech/common/mime/ContentTypeHeader;
      // 27: bipush 0
      // 28: newarray 8
      // 2a: invokevirtual com/l7tech/message/Message.initialize (Lcom/l7tech/common/mime/ContentTypeHeader;[B)V
      // 2d: aload 0
      // 2e: iload 2
      // 2f: putfield com/l7tech/message/Message.o Z
      // 32: aload 0
      // 33: getfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 36: ifnull 44
      // 39: aload 0
      // 3a: getfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 3d: goto 4d
      // 40: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 43: athrow
      // 44: aload 0
      // 45: ldc com/l7tech/message/MimeKnob
      // 47: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 4a: checkcast com/l7tech/message/MimeKnob
      // 4d: astore 1
      // 4e: getstatic com/l7tech/message/Message.r Z
      // 51: ifne 6b
      // 54: aload 1
      // 55: ifnonnull 6b
      // 58: goto 5f
      // 5b: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5e: athrow
      // 5f: new java/lang/AssertionError
      // 62: dup
      // 63: invokespecial java/lang/AssertionError.<init> ()V
      // 66: athrow
      // 67: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a: athrow
      // 6b: goto 78
      // 6e: astore 2
      // 6f: new java/lang/RuntimeException
      // 72: dup
      // 73: aload 2
      // 74: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/Throwable;)V
      // 77: athrow
      // 78: aload 1
      // 79: areturn
      // try (41 -> 50): 50 java/io/IOException
      // try (39 -> 43): 44 java/io/IOException
      // try (18 -> 32): 32 java/io/IOException
      // try (0 -> 6): 6 java/io/IOException
      // try (15 -> 52): 53 java/io/IOException
   }

   public JsonKnob getJsonKnob() {
      try {
         if (this.n != null) {
            return this.n;
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      JsonKnob var1 = this.getKnob(JsonKnob.class);
      if (var1 == null) {
         this.c = new JsonFacet(this, this.c);
         this.a();
         var1 = this.getKnob(JsonKnob.class);

         try {
            if (var1 == null) {
               throw new IllegalStateException();
            }
         } catch (RuntimeException var2) {
            throw a(var2);
         }
      }

      return var1;
   }

   public XmlKnob getXmlKnob() throws SAXException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/message/Message.j Lcom/l7tech/message/XmlKnob;
      // 04: ifnull 10
      // 07: aload 0
      // 08: getfield com/l7tech/message/Message.j Lcom/l7tech/message/XmlKnob;
      // 0b: areturn
      // 0c: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f: athrow
      // 10: aload 0
      // 11: ldc com/l7tech/message/XmlKnob
      // 13: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 16: checkcast com/l7tech/message/XmlKnob
      // 19: astore 1
      // 1a: aload 1
      // 1b: ifnonnull 86
      // 1e: aload 0
      // 1f: getfield com/l7tech/message/Message.o Z
      // 22: ifne 3e
      // 25: goto 2c
      // 28: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2b: athrow
      // 2c: new org/xml/sax/SAXException
      // 2f: dup
      // 30: getstatic com/l7tech/message/Message.s [Ljava/lang/String;
      // 33: bipush 9
      // 35: aaload
      // 36: invokespecial org/xml/sax/SAXException.<init> (Ljava/lang/String;)V
      // 39: athrow
      // 3a: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d: athrow
      // 3e: aload 0
      // 3f: new com/l7tech/message/XmlFacet
      // 42: dup
      // 43: aload 0
      // 44: aload 0
      // 45: getfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 48: invokespecial com/l7tech/message/XmlFacet.<init> (Lcom/l7tech/message/Message;Lcom/l7tech/message/c;)V
      // 4b: putfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 4e: aload 0
      // 4f: invokevirtual com/l7tech/message/Message.a ()V
      // 52: aload 0
      // 53: ldc com/l7tech/message/XmlKnob
      // 55: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 58: checkcast com/l7tech/message/XmlKnob
      // 5b: astore 1
      // 5c: getstatic com/l7tech/message/Message.r Z
      // 5f: ifne 79
      // 62: aload 1
      // 63: ifnonnull 79
      // 66: goto 6d
      // 69: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6c: athrow
      // 6d: new java/lang/AssertionError
      // 70: dup
      // 71: invokespecial java/lang/AssertionError.<init> ()V
      // 74: athrow
      // 75: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 78: athrow
      // 79: goto 86
      // 7c: astore 2
      // 7d: new com/l7tech/util/CausedIllegalStateException
      // 80: dup
      // 81: aload 2
      // 82: invokespecial com/l7tech/util/CausedIllegalStateException.<init> (Ljava/lang/Throwable;)V
      // 85: athrow
      // 86: aload 1
      // 87: areturn
      // try (47 -> 56): 56 java/io/IOException
      // try (45 -> 49): 50 java/io/IOException
      // try (15 -> 28): 28 java/io/IOException
      // try (13 -> 18): 19 java/io/IOException
      // try (0 -> 6): 6 java/io/IOException
      // try (30 -> 58): 59 java/io/IOException
   }

   public SecurityKnob getSecurityKnob() {
      SecurityKnob var1 = this.getKnob(SecurityKnob.class);
      if (var1 == null) {
         this.c = new SecurityFacet(this, this.c);
         this.a();
         var1 = this.getKnob(SecurityKnob.class);

         try {
            if (var1 == null) {
               throw new IllegalStateException();
            }
         } catch (RuntimeException var2) {
            throw a(var2);
         }
      }

      return var1;
   }

   public boolean isJson() throws IOException {
      try {
         if (this.n != null) {
            return true;
         }
      } catch (IOException var6) {
         throw a(var6);
      }

      try {
         if (this.getKnob(JsonKnob.class) != null) {
            return true;
         }
      } catch (IOException var8) {
         throw a(var8);
      }

      MimeKnob var1 = this.getKnob(MimeKnob.class);

      try {
         if (var1 == null) {
            return false;
         }
      } catch (IOException var5) {
         throw a(var5);
      }

      try {
         if (!var1.getFirstPart().getContentType().isJson()) {
            return false;
         }
      } catch (IOException var7) {
         throw a(var7);
      }

      HttpRequestKnob var2 = this.getKnob(HttpRequestKnob.class);
      if (var2 != null) {
         int var3 = var2.getIntHeader(HttpConstants.HEADER_CONTENT_LENGTH);

         try {
            if (var3 == 0) {
               return false;
            }
         } catch (IOException var4) {
            throw a(var4);
         }
      }

      this.getJsonKnob();
      return true;
   }

   public boolean isXml() throws IOException {
      try {
         if (this.j != null) {
            return true;
         }
      } catch (SAXException var7) {
         throw a(var7);
      }

      try {
         if (this.getKnob(XmlKnob.class) != null) {
            return true;
         }
      } catch (SAXException var9) {
         throw a(var9);
      }

      MimeKnob var1 = this.getKnob(MimeKnob.class);

      try {
         if (var1 == null) {
            return false;
         }
      } catch (SAXException var6) {
         throw a(var6);
      }

      try {
         if (!var1.getFirstPart().getContentType().isXml()) {
            return false;
         }
      } catch (SAXException var8) {
         throw a(var8);
      }

      HttpRequestKnob var2 = this.getKnob(HttpRequestKnob.class);
      if (var2 != null) {
         int var3 = var2.getIntHeader(HttpConstants.HEADER_CONTENT_LENGTH);

         try {
            if (var3 == 0) {
               return false;
            }
         } catch (SAXException var5) {
            throw a(var5);
         }
      }

      try {
         this.getXmlKnob();
         return true;
      } catch (SAXException var4) {
         throw new CausedIllegalStateException(s[27], var4);
      }
   }

   public SoapKnob getSoapKnob() throws SAXException, IOException, MessageNotSoapException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ldc com/l7tech/message/SoapKnob
      // 03: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 06: checkcast com/l7tech/message/SoapKnob
      // 09: astore 1
      // 0a: aload 1
      // 0b: ifnonnull 48
      // 0e: aload 0
      // 0f: invokevirtual com/l7tech/message/Message.isSoap ()Z
      // 12: ifne 28
      // 15: goto 1c
      // 18: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b: athrow
      // 1c: new com/l7tech/xml/MessageNotSoapException
      // 1f: dup
      // 20: invokespecial com/l7tech/xml/MessageNotSoapException.<init> ()V
      // 23: athrow
      // 24: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 27: athrow
      // 28: aload 0
      // 29: ldc com/l7tech/message/SoapKnob
      // 2b: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 2e: checkcast com/l7tech/message/SoapKnob
      // 31: astore 1
      // 32: aload 1
      // 33: ifnonnull 48
      // 36: new java/lang/IllegalStateException
      // 39: dup
      // 3a: getstatic com/l7tech/message/Message.s [Ljava/lang/String;
      // 3d: bipush 22
      // 3f: aaload
      // 40: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 43: athrow
      // 44: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 47: athrow
      // 48: aload 1
      // 49: areturn
      // try (5 -> 10): 11 org/xml/sax/SAXException
      // try (7 -> 17): 17 org/xml/sax/SAXException
      // try (24 -> 33): 33 org/xml/sax/SAXException
   }

   public boolean isSoap() throws IOException, SAXException {
      return this.isSoap(false);
   }

   public boolean isSoap(boolean param1) throws IOException, SAXException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/message/Message.k Lcom/l7tech/message/SoapKnob;
      // 04: ifnull 0d
      // 07: bipush 1
      // 08: ireturn
      // 09: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c: athrow
      // 0d: aload 0
      // 0e: ldc com/l7tech/message/HttpRequestKnob
      // 10: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 13: checkcast com/l7tech/message/HttpRequestKnob
      // 16: astore 2
      // 17: aload 2
      // 18: ifnull 34
      // 1b: aload 2
      // 1c: invokeinterface com/l7tech/message/HttpRequestKnob.getMethod ()Lcom/l7tech/common/http/HttpMethod; 1
      // 21: getstatic com/l7tech/common/http/HttpMethod.POST Lcom/l7tech/common/http/HttpMethod;
      // 24: if_acmpeq 34
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: bipush 0
      // 2f: ireturn
      // 30: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 33: athrow
      // 34: aload 0
      // 35: ldc com/l7tech/message/SoapKnob
      // 37: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 3a: ifnull 43
      // 3d: bipush 1
      // 3e: ireturn
      // 3f: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 42: athrow
      // 43: aload 0
      // 44: invokevirtual com/l7tech/message/Message.isXml ()Z
      // 47: ifne 50
      // 4a: bipush 0
      // 4b: ireturn
      // 4c: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4f: athrow
      // 50: aconst_null
      // 51: astore 3
      // 52: iload 1
      // 53: ifeq 67
      // 56: aload 0
      // 57: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 5a: invokeinterface com/l7tech/message/XmlKnob.getDocumentReadOnly ()Lorg/w3c/dom/Document; 1
      // 5f: pop
      // 60: goto 67
      // 63: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 66: athrow
      // 67: aload 0
      // 68: invokestatic com/l7tech/message/g.a (Lcom/l7tech/message/Message;)Lcom/l7tech/message/SoapInfo;
      // 6b: astore 3
      // 6c: aload 3
      // 6d: invokevirtual com/l7tech/message/SoapInfo.isSoap ()Z
      // 70: ifne 79
      // 73: bipush 0
      // 74: ireturn
      // 75: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 78: athrow
      // 79: aload 0
      // 7a: new com/l7tech/message/g
      // 7d: dup
      // 7e: aload 0
      // 7f: aload 0
      // 80: getfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 83: aload 3
      // 84: invokespecial com/l7tech/message/g.<init> (Lcom/l7tech/message/Message;Lcom/l7tech/message/c;Lcom/l7tech/message/SoapInfo;)V
      // 87: putfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 8a: aload 0
      // 8b: invokevirtual com/l7tech/message/Message.a ()V
      // 8e: bipush 1
      // 8f: ireturn
      // try (0 -> 5): 5 java/io/IOException
      // try (12 -> 18): 19 java/io/IOException
      // try (14 -> 23): 23 java/io/IOException
      // try (25 -> 31): 31 java/io/IOException
      // try (33 -> 38): 38 java/io/IOException
      // try (42 -> 48): 49 java/io/IOException
      // try (54 -> 59): 59 java/io/IOException
   }

   public boolean isHttpRequest() {
      try {
         if (this.getKnob(HttpRequestKnob.class) != null) {
            return true;
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      return false;
   }

   public boolean isHttpResponse() {
      try {
         if (this.getKnob(HttpResponseKnob.class) != null) {
            return true;
         }
      } catch (RuntimeException var1) {
         throw a(var1);
      }

      return false;
   }

   public void attachHttpRequestKnob(HttpRequestKnob var1) throws IllegalStateException {
      try {
         if (this.getKnob(HttpRequestKnob.class) != null) {
            throw new IllegalStateException(s[16]);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.c = new HttpRequestFacet(this, this.c, var1);
      this.a();
   }

   public void attachJmsKnob(JmsKnob var1) throws IllegalStateException {
      try {
         if (this.getKnob(JmsKnob.class) != null) {
            throw new IllegalStateException(s[29]);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.c = new JmsFacet(this, this.c, var1);
      this.a();
   }

   public void attachEmailKnob(EmailKnob var1) throws IllegalStateException {
      try {
         if (this.getKnob(EmailKnob.class) != null) {
            throw new IllegalStateException(s[18]);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.c = new EmailFacet(this, this.c, var1);
      this.a();
   }

   public void attachFtpRequestKnob(FtpRequestKnob var1) throws IllegalStateException {
      try {
         if (this.getKnob(FtpRequestKnob.class) != null) {
            throw new IllegalStateException(s[19]);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.c = new FtpRequestFacet(this, this.c, var1);
      this.a();
   }

   public void attachFtpResponseKnob(FtpResponseKnob var1) throws IllegalStateException {
      try {
         if (this.getKnob(FtpResponseKnob.class) != null) {
            throw new IllegalStateException(s[14]);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.c = new FtpResponseFacet(this, this.c, var1);
      this.a();
   }

   public HttpRequestKnob getHttpRequestKnob() throws IllegalStateException {
      HttpRequestKnob var1 = this.getKnob(HttpRequestKnob.class);

      try {
         if (var1 == null) {
            throw new IllegalStateException(s[30]);
         } else {
            return var1;
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }
   }

   public void attachHttpResponseKnob(HttpResponseKnob var1) throws IllegalStateException {
      try {
         if (this.getKnob(HttpResponseKnob.class) != null) {
            throw new IllegalStateException(s[8]);
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }

      this.c = new HttpResponseFacet(this, this.c, var1);
      this.a();
   }

   public HttpResponseKnob getHttpResponseKnob() throws IllegalStateException {
      HttpResponseKnob var1 = this.getKnob(HttpResponseKnob.class);

      try {
         if (var1 == null) {
            throw new IllegalStateException(s[17]);
         } else {
            return var1;
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }
   }

   public TcpKnob getTcpKnob() throws IllegalStateException {
      TcpKnob var1 = this.getKnob(TcpKnob.class);

      try {
         if (var1 == null) {
            throw new IllegalStateException(s[3]);
         } else {
            return var1;
         }
      } catch (IllegalStateException var2) {
         throw a(var2);
      }
   }

   public JmsKnob getJmsKnob() {
      JmsKnob var1 = this.getKnob(JmsKnob.class);

      try {
         if (var1 == null) {
            throw new IllegalStateException(s[20]);
         } else {
            return var1;
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }
   }

   @NotNull
   public HeadersKnob getHeadersKnob() {
      HeadersKnob var1 = this.getKnob(HeadersKnob.class);
      if (var1 == null) {
         this.c = new f(this, this.c, new HeadersKnobSupport(), false, HeadersKnob.class);
         var1 = this.getKnob(HeadersKnob.class);

         try {
            if (var1 == null) {
               throw new IllegalStateException(s[21]);
            }
         } catch (RuntimeException var3) {
            throw a(var3);
         }
      }

      try {
         if (var1 == null) {
            a(0);
         }

         return var1;
      } catch (RuntimeException var2) {
         throw a(var2);
      }
   }

   @NotNull
   public HttpCookiesKnob getHttpCookiesKnob() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: ldc com/l7tech/message/HttpCookiesKnob
      // 03: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 06: checkcast com/l7tech/message/HttpCookiesKnob
      // 09: astore 1
      // 0a: aload 1
      // 0b: ifnonnull 6e
      // 0e: aload 0
      // 0f: new com/l7tech/message/f
      // 12: dup
      // 13: aload 0
      // 14: aload 0
      // 15: getfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 18: new com/l7tech/message/HttpCookiesKnobImpl
      // 1b: dup
      // 1c: aload 0
      // 1d: invokevirtual com/l7tech/message/Message.getHeadersKnob ()Lcom/l7tech/message/HeadersKnob;
      // 20: aload 0
      // 21: invokevirtual com/l7tech/message/Message.isHttpResponse ()Z
      // 24: ifeq 38
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: getstatic com/l7tech/common/http/HttpConstants.HEADER_SET_COOKIE Ljava/lang/String;
      // 31: goto 3b
      // 34: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 37: athrow
      // 38: getstatic com/l7tech/common/http/HttpConstants.HEADER_COOKIE Ljava/lang/String;
      // 3b: invokespecial com/l7tech/message/HttpCookiesKnobImpl.<init> (Lcom/l7tech/message/HeadersKnob;Ljava/lang/String;)V
      // 3e: bipush 0
      // 3f: bipush 1
      // 40: anewarray 554
      // 43: dup
      // 44: bipush 0
      // 45: ldc com/l7tech/message/HttpCookiesKnob
      // 47: aastore
      // 48: invokespecial com/l7tech/message/f.<init> (Lcom/l7tech/message/Message;Lcom/l7tech/message/c;Lcom/l7tech/message/MessageKnob;Z[Ljava/lang/Class;)V
      // 4b: putfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 4e: aload 0
      // 4f: ldc com/l7tech/message/HttpCookiesKnob
      // 51: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 54: checkcast com/l7tech/message/HttpCookiesKnob
      // 57: astore 1
      // 58: aload 1
      // 59: ifnonnull 6e
      // 5c: new java/lang/IllegalStateException
      // 5f: dup
      // 60: getstatic com/l7tech/message/Message.s [Ljava/lang/String;
      // 63: bipush 11
      // 65: aaload
      // 66: invokespecial java/lang/IllegalStateException.<init> (Ljava/lang/String;)V
      // 69: athrow
      // 6a: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6d: athrow
      // 6e: aload 1
      // 6f: dup
      // 70: ifnonnull 7e
      // 73: bipush 1
      // 74: invokestatic com/l7tech/message/Message.a (I)V
      // 77: goto 7e
      // 7a: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7d: athrow
      // 7e: areturn
      // try (5 -> 20): 21 java/lang/RuntimeException
      // try (7 -> 25): 25 java/lang/RuntimeException
      // try (43 -> 52): 52 java/lang/RuntimeException
      // try (54 -> 59): 60 java/lang/RuntimeException
   }

   public void notifyMessage(Message var1, MessageRole var2) {
      this.d.put(var2, var1);
   }

   public Message getRelated(MessageRole var1) {
      return this.d.get(var1);
   }

   public <T extends MessageKnob> void attachKnob(@NotNull Class<T> var1, @NotNull T var2) {
      try {
         if (var1 == null) {
            a(2);
         }
      } catch (RuntimeException var5) {
         throw a(var5);
      }

      try {
         if (var2 == null) {
            a(3);
         }
      } catch (RuntimeException var7) {
         throw a(var7);
      }

      try {
         if (this.getKnob(var1) != null) {
            throw new IllegalStateException(s[35] + var1 + s[24]);
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      try {
         if (!var1.isAssignableFrom(var2.getClass())) {
            throw new IllegalArgumentException(s[0] + var1);
         }
      } catch (RuntimeException var6) {
         throw a(var6);
      }

      try {
         this.c = new f(this, this.c, var2, false, var1);
         if (this.getKnob(var1) == null) {
            throw new IllegalArgumentException(s[10] + var1);
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }
   }

   public void attachKnob(@NotNull MessageKnob var1, @NotNull Class... var2) {
      try {
         if (var1 == null) {
            a(4);
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      try {
         if (var2 == null) {
            a(5);
         }
      } catch (RuntimeException var4) {
         throw a(var4);
      }

      this.attachKnob(var1, false, var2);
   }

   public void attachKnob(@NotNull MessageKnob var1, boolean var2, @NotNull Class... var3) {
      try {
         if (var1 == null) {
            a(6);
         }
      } catch (RuntimeException var9) {
         throw a(var9);
      }

      try {
         if (var3 == null) {
            a(7);
         }
      } catch (RuntimeException var11) {
         throw a(var11);
      }

      for (Class var7 : var3) {
         try {
            if (!var7.isAssignableFrom(var1.getClass())) {
               throw new IllegalArgumentException(s[15] + var7);
            }
         } catch (RuntimeException var8) {
            throw a(var8);
         }

         try {
            if (this.getKnob(var7) != null) {
               throw new IllegalStateException(s[7] + var7 + s[4]);
            }
         } catch (RuntimeException var10) {
            throw a(var10);
         }
      }

      this.c = new f(this, this.c, var1, var2, var3);
   }

   public <T extends MessageKnob> T getKnobAlways(Class<T> var1) throws IllegalStateException {
      MessageKnob var2 = this.getKnob(var1);

      try {
         if (var2 == null) {
            throw new IllegalStateException(s[23] + var1.getName());
         } else {
            return (T)var2;
         }
      } catch (IllegalStateException var3) {
         throw a(var3);
      }
   }

   @Nullable
   public <T> T getKnob(Class<T> param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 1
      // 001: ifnonnull 010
      // 004: new java/lang/NullPointerException
      // 007: dup
      // 008: invokespecial java/lang/NullPointerException.<init> ()V
      // 00b: athrow
      // 00c: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 00f: athrow
      // 010: aload 0
      // 011: getfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 014: ifnonnull 01d
      // 017: aconst_null
      // 018: areturn
      // 019: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01c: athrow
      // 01d: aload 1
      // 01e: ldc com/l7tech/message/MimeKnob
      // 020: if_acmpne 04a
      // 023: aload 0
      // 024: getfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 027: ifnull 03c
      // 02a: goto 031
      // 02d: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 030: athrow
      // 031: aload 0
      // 032: getfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 035: goto 049
      // 038: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03b: athrow
      // 03c: aload 0
      // 03d: aload 0
      // 03e: aload 1
      // 03f: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 042: checkcast com/l7tech/message/MimeKnob
      // 045: dup_x1
      // 046: putfield com/l7tech/message/Message.l Lcom/l7tech/message/MimeKnob;
      // 049: areturn
      // 04a: aload 1
      // 04b: ldc com/l7tech/message/HttpRequestKnob
      // 04d: if_acmpne 077
      // 050: aload 0
      // 051: getfield com/l7tech/message/Message.e Lcom/l7tech/message/HttpRequestKnob;
      // 054: ifnull 069
      // 057: goto 05e
      // 05a: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05d: athrow
      // 05e: aload 0
      // 05f: getfield com/l7tech/message/Message.e Lcom/l7tech/message/HttpRequestKnob;
      // 062: goto 076
      // 065: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 068: athrow
      // 069: aload 0
      // 06a: aload 0
      // 06b: aload 1
      // 06c: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 06f: checkcast com/l7tech/message/HttpRequestKnob
      // 072: dup_x1
      // 073: putfield com/l7tech/message/Message.e Lcom/l7tech/message/HttpRequestKnob;
      // 076: areturn
      // 077: aload 1
      // 078: ldc com/l7tech/message/HttpServletRequestKnob
      // 07a: if_acmpne 0a4
      // 07d: aload 0
      // 07e: getfield com/l7tech/message/Message.f Lcom/l7tech/message/HttpServletRequestKnob;
      // 081: ifnull 096
      // 084: goto 08b
      // 087: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08a: athrow
      // 08b: aload 0
      // 08c: getfield com/l7tech/message/Message.f Lcom/l7tech/message/HttpServletRequestKnob;
      // 08f: goto 0a3
      // 092: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 095: athrow
      // 096: aload 0
      // 097: aload 0
      // 098: aload 1
      // 099: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 09c: checkcast com/l7tech/message/HttpServletRequestKnob
      // 09f: dup_x1
      // 0a0: putfield com/l7tech/message/Message.f Lcom/l7tech/message/HttpServletRequestKnob;
      // 0a3: areturn
      // 0a4: aload 1
      // 0a5: ldc com/l7tech/message/HttpResponseKnob
      // 0a7: if_acmpne 0d1
      // 0aa: aload 0
      // 0ab: getfield com/l7tech/message/Message.g Lcom/l7tech/message/HttpResponseKnob;
      // 0ae: ifnull 0c3
      // 0b1: goto 0b8
      // 0b4: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b7: athrow
      // 0b8: aload 0
      // 0b9: getfield com/l7tech/message/Message.g Lcom/l7tech/message/HttpResponseKnob;
      // 0bc: goto 0d0
      // 0bf: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c2: athrow
      // 0c3: aload 0
      // 0c4: aload 0
      // 0c5: aload 1
      // 0c6: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 0c9: checkcast com/l7tech/message/HttpResponseKnob
      // 0cc: dup_x1
      // 0cd: putfield com/l7tech/message/Message.g Lcom/l7tech/message/HttpResponseKnob;
      // 0d0: areturn
      // 0d1: aload 1
      // 0d2: ldc com/l7tech/message/HttpServletResponseKnob
      // 0d4: if_acmpne 0fe
      // 0d7: aload 0
      // 0d8: getfield com/l7tech/message/Message.h Lcom/l7tech/message/HttpServletResponseKnob;
      // 0db: ifnull 0f0
      // 0de: goto 0e5
      // 0e1: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e4: athrow
      // 0e5: aload 0
      // 0e6: getfield com/l7tech/message/Message.h Lcom/l7tech/message/HttpServletResponseKnob;
      // 0e9: goto 0fd
      // 0ec: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ef: athrow
      // 0f0: aload 0
      // 0f1: aload 0
      // 0f2: aload 1
      // 0f3: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 0f6: checkcast com/l7tech/message/HttpServletResponseKnob
      // 0f9: dup_x1
      // 0fa: putfield com/l7tech/message/Message.h Lcom/l7tech/message/HttpServletResponseKnob;
      // 0fd: areturn
      // 0fe: aload 1
      // 0ff: ldc com/l7tech/message/TcpKnob
      // 101: if_acmpne 12b
      // 104: aload 0
      // 105: getfield com/l7tech/message/Message.i Lcom/l7tech/message/TcpKnob;
      // 108: ifnull 11d
      // 10b: goto 112
      // 10e: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 111: athrow
      // 112: aload 0
      // 113: getfield com/l7tech/message/Message.i Lcom/l7tech/message/TcpKnob;
      // 116: goto 12a
      // 119: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11c: athrow
      // 11d: aload 0
      // 11e: aload 0
      // 11f: aload 1
      // 120: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 123: checkcast com/l7tech/message/TcpKnob
      // 126: dup_x1
      // 127: putfield com/l7tech/message/Message.i Lcom/l7tech/message/TcpKnob;
      // 12a: areturn
      // 12b: aload 1
      // 12c: ldc com/l7tech/message/XmlKnob
      // 12e: if_acmpne 158
      // 131: aload 0
      // 132: getfield com/l7tech/message/Message.j Lcom/l7tech/message/XmlKnob;
      // 135: ifnull 14a
      // 138: goto 13f
      // 13b: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 13e: athrow
      // 13f: aload 0
      // 140: getfield com/l7tech/message/Message.j Lcom/l7tech/message/XmlKnob;
      // 143: goto 157
      // 146: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 149: athrow
      // 14a: aload 0
      // 14b: aload 0
      // 14c: aload 1
      // 14d: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 150: checkcast com/l7tech/message/XmlKnob
      // 153: dup_x1
      // 154: putfield com/l7tech/message/Message.j Lcom/l7tech/message/XmlKnob;
      // 157: areturn
      // 158: aload 1
      // 159: ldc com/l7tech/message/SecurityKnob
      // 15b: if_acmpne 185
      // 15e: aload 0
      // 15f: getfield com/l7tech/message/Message.m Lcom/l7tech/message/SecurityKnob;
      // 162: ifnull 177
      // 165: goto 16c
      // 168: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16b: athrow
      // 16c: aload 0
      // 16d: getfield com/l7tech/message/Message.m Lcom/l7tech/message/SecurityKnob;
      // 170: goto 184
      // 173: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 176: athrow
      // 177: aload 0
      // 178: aload 0
      // 179: aload 1
      // 17a: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 17d: checkcast com/l7tech/message/SecurityKnob
      // 180: dup_x1
      // 181: putfield com/l7tech/message/Message.m Lcom/l7tech/message/SecurityKnob;
      // 184: areturn
      // 185: aload 1
      // 186: ldc com/l7tech/message/SoapKnob
      // 188: if_acmpne 1b2
      // 18b: aload 0
      // 18c: getfield com/l7tech/message/Message.k Lcom/l7tech/message/SoapKnob;
      // 18f: ifnull 1a4
      // 192: goto 199
      // 195: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 198: athrow
      // 199: aload 0
      // 19a: getfield com/l7tech/message/Message.k Lcom/l7tech/message/SoapKnob;
      // 19d: goto 1b1
      // 1a0: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a3: athrow
      // 1a4: aload 0
      // 1a5: aload 0
      // 1a6: aload 1
      // 1a7: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 1aa: checkcast com/l7tech/message/SoapKnob
      // 1ad: dup_x1
      // 1ae: putfield com/l7tech/message/Message.k Lcom/l7tech/message/SoapKnob;
      // 1b1: areturn
      // 1b2: aload 1
      // 1b3: ldc com/l7tech/message/JsonKnob
      // 1b5: if_acmpne 1df
      // 1b8: aload 0
      // 1b9: getfield com/l7tech/message/Message.n Lcom/l7tech/message/JsonKnob;
      // 1bc: ifnull 1d1
      // 1bf: goto 1c6
      // 1c2: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c5: athrow
      // 1c6: aload 0
      // 1c7: getfield com/l7tech/message/Message.n Lcom/l7tech/message/JsonKnob;
      // 1ca: goto 1de
      // 1cd: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d0: athrow
      // 1d1: aload 0
      // 1d2: aload 0
      // 1d3: aload 1
      // 1d4: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 1d7: checkcast com/l7tech/message/JsonKnob
      // 1da: dup_x1
      // 1db: putfield com/l7tech/message/Message.n Lcom/l7tech/message/JsonKnob;
      // 1de: areturn
      // 1df: aload 1
      // 1e0: ldc com/l7tech/message/HeadersKnob
      // 1e2: if_acmpne 20c
      // 1e5: aload 0
      // 1e6: getfield com/l7tech/message/Message.p Lcom/l7tech/message/HeadersKnob;
      // 1e9: ifnull 1fe
      // 1ec: goto 1f3
      // 1ef: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f2: athrow
      // 1f3: aload 0
      // 1f4: getfield com/l7tech/message/Message.p Lcom/l7tech/message/HeadersKnob;
      // 1f7: goto 20b
      // 1fa: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1fd: athrow
      // 1fe: aload 0
      // 1ff: aload 0
      // 200: aload 1
      // 201: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 204: checkcast com/l7tech/message/HeadersKnob
      // 207: dup_x1
      // 208: putfield com/l7tech/message/Message.p Lcom/l7tech/message/HeadersKnob;
      // 20b: areturn
      // 20c: aload 1
      // 20d: ldc com/l7tech/message/HttpCookiesKnob
      // 20f: if_acmpne 239
      // 212: aload 0
      // 213: getfield com/l7tech/message/Message.q Lcom/l7tech/message/HttpCookiesKnob;
      // 216: ifnull 22b
      // 219: goto 220
      // 21c: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 21f: athrow
      // 220: aload 0
      // 221: getfield com/l7tech/message/Message.q Lcom/l7tech/message/HttpCookiesKnob;
      // 224: goto 238
      // 227: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 22a: athrow
      // 22b: aload 0
      // 22c: aload 0
      // 22d: aload 1
      // 22e: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 231: checkcast com/l7tech/message/HttpCookiesKnob
      // 234: dup_x1
      // 235: putfield com/l7tech/message/Message.q Lcom/l7tech/message/HttpCookiesKnob;
      // 238: areturn
      // 239: aload 0
      // 23a: aload 1
      // 23b: invokevirtual com/l7tech/message/Message.a (Ljava/lang/Class;)Lcom/l7tech/message/MessageKnob;
      // 23e: areturn
      // try (0 -> 6): 6 java/lang/RuntimeException
      // try (8 -> 13): 13 java/lang/RuntimeException
      // try (15 -> 21): 22 java/lang/RuntimeException
      // try (18 -> 27): 27 java/lang/RuntimeException
      // try (37 -> 43): 44 java/lang/RuntimeException
      // try (40 -> 49): 49 java/lang/RuntimeException
      // try (59 -> 65): 66 java/lang/RuntimeException
      // try (62 -> 71): 71 java/lang/RuntimeException
      // try (81 -> 87): 88 java/lang/RuntimeException
      // try (84 -> 93): 93 java/lang/RuntimeException
      // try (103 -> 109): 110 java/lang/RuntimeException
      // try (106 -> 115): 115 java/lang/RuntimeException
      // try (125 -> 131): 132 java/lang/RuntimeException
      // try (128 -> 137): 137 java/lang/RuntimeException
      // try (147 -> 153): 154 java/lang/RuntimeException
      // try (150 -> 159): 159 java/lang/RuntimeException
      // try (169 -> 175): 176 java/lang/RuntimeException
      // try (172 -> 181): 181 java/lang/RuntimeException
      // try (191 -> 197): 198 java/lang/RuntimeException
      // try (194 -> 203): 203 java/lang/RuntimeException
      // try (213 -> 219): 220 java/lang/RuntimeException
      // try (216 -> 225): 225 java/lang/RuntimeException
      // try (235 -> 241): 242 java/lang/RuntimeException
      // try (238 -> 247): 247 java/lang/RuntimeException
      // try (257 -> 263): 264 java/lang/RuntimeException
      // try (260 -> 269): 269 java/lang/RuntimeException
   }

   private MessageKnob a(Class var1) {
      return this.c.getKnob(var1);
   }

   private void a() {
      this.e = null;
      this.f = null;
      this.g = null;
      this.h = null;
      this.i = null;
      this.j = null;
      this.k = null;
      this.l = null;
      this.m = null;
      this.n = null;
   }

   public static boolean isDefaultEnableOriginalDocument() {
      return a;
   }

   public static void setDefaultEnableOriginalDocument(Object var0) {
      a = Boolean.valueOf(String.valueOf(var0));
   }

   @Override
   public void close() {
      try {
         if (this.c != null) {
            this.c.close();
         }
      } finally {
         this.c = null;
         this.o = false;
         this.a();
      }
   }

   void b() {
      SoapKnob var1 = this.getKnob(SoapKnob.class);

      try {
         if (var1 != null) {
            var1.invalidate();
         }
      } catch (RuntimeException var2) {
         throw a(var2);
      }
   }

   @NotNull
   List<e> c() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: new java/util/ArrayList
      // 03: dup
      // 04: invokespecial java/util/ArrayList.<init> ()V
      // 07: astore 1
      // 08: aload 0
      // 09: getfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 0c: ifnonnull 28
      // 0f: aload 1
      // 10: dup
      // 11: ifnonnull 27
      // 14: goto 1b
      // 17: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: bipush 8
      // 1d: invokestatic com/l7tech/message/Message.a (I)V
      // 20: goto 27
      // 23: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: areturn
      // 28: aload 0
      // 29: getfield com/l7tech/message/Message.c Lcom/l7tech/message/c;
      // 2c: new com/l7tech/message/b
      // 2f: dup
      // 30: aload 0
      // 31: invokespecial com/l7tech/message/b.<init> (Lcom/l7tech/message/Message;)V
      // 34: aload 1
      // 35: invokevirtual com/l7tech/message/c.a (Lcom/l7tech/util/Functions$Binary;Ljava/lang/Object;)Ljava/lang/Object;
      // 38: checkcast java/util/List
      // 3b: dup
      // 3c: ifnonnull 4b
      // 3f: bipush 9
      // 41: invokestatic com/l7tech/message/Message.a (I)V
      // 44: goto 4b
      // 47: invokestatic com/l7tech/message/Message.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4a: athrow
      // 4b: areturn
      // try (4 -> 10): 11 java/lang/RuntimeException
      // try (7 -> 15): 16 java/lang/RuntimeException
      // try (19 -> 32): 33 java/lang/RuntimeException
   }

   static {
      String[] var5 = new String[36];
      int var3 = 0;
      String var2 = "aY\u001bS{-Hy\u0017\u001a^/zHd\u0017\u001d\\+6LgR\u001aE:.@eYT^=zBdX\u0016r7;Zy\u0017)iX\u0019\u001f7m]oT\u001c\u001f6?ZyV\u0013Tu?GkU\u0018T\u0014(@m^\u001aP7\u001eFiB\u0019T5.\u0014mR\u0000a)?ZoE\u0002P96LLV\u0017T/)9^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zAkA\u001d_<zHxE\u001dG>>\teA\u0011C{\u000ejZ%*^\u0007\u0011:6[oV\u0010H{;]~V\u0017Y>>\t~XTE33Z*z\u0011B(;No\u0019>KE\u0013D6?G~\u0017\u0012^)ziDX\u0000\u007f.6E*G\u0015C:7L~R\u0006\u0011|\u007fZ-\u0017\u001bW{\u007fZ$\u0012\u0007\u00116/Z~\u0017\u001a^/zKo\u0017\u001aD76\u001aiX\u0019\u001e7m]oT\u001c\u001e6?ZyV\u0013Tt\u0017LyD\u0015V>\u001eKYTX6*EoZ\u0011_/;]cX\u001a\u00114<\t~_\u0011\u001104Fh\u00176^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5za^c$\u0011)?ZzX\u001aB><GR\u0007B:=L*Q\u001dC(.\tzV\u0006E{3Z*Y\u001bE{.LrC[I66\t\"Z\u0011B(;No\u0017\u001a^/z@d^\u0000X:6@pR\u0010\u00185aY\u001bS{<Hc[\u0011U{.F*G\u0006^-3Mo\u0017\u0015_{3Dz[\u0011\\>4]kC\u001d^5zFl\u0017\u001f_48jfV\u0007B IX\u0001]?zGeCTR)?H~RTy/.YIX\u001bZ2?ZAY\u001bS\u000baY\u001bS\u00186HyD\u0011B\nkC\u0000P82bdX\u0016=^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5zo^gTc>)YeY\u0007T{\u0017LyD\u0015V>,aY\u001bS{-Hy\u0017\u001a^/zHd\u0017\u001d\\+6LgR\u001aE:.@eYT^=zBdX\u0016r7;Zy\u00175^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5za^c$\u0011)?X\u007fR\u0007E2^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zHd\u0017<e\u000f\n\txR\u0007A44Zo6^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5zlgV\u001d]{\u0017LyD\u0015V><^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5zo^gTc>+\\oD\u0000\u0011\u0016?ZyV\u0013T9^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zAkA\u001d_<zHxE\u001dG>>\teA\u0011C{\u0010dY\u001cIX\u0001]?zGeCTR)?H~RTy>;MoE\u0007z55K(cD'^:*\u0001#\u0017\u001dB{.[\u007fRTS..\t~_\u0011C>}Z*Y\u001b\u0011\b5Hz|\u001a^9.^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJ\u007fE\u0006T5.Es\u0017\u0017^5<@mB\u0006T?z^cC\u001c\u0011%*^\u0007\u0011:6[oV\u0010H{;]~V\u0017Y>>\t~XTE33Z*z\u0011B(;No\u0019*Jy\u001bE\u0015/Ef\u0017\u0019T/2Fn\u0017QBu\u007fZ*Z\u0001B/zGeCTC>.\\xYT_.6E\u0012mR\u0000y/.YIX\u001bZ2?ZAY\u001bS\u0012L^\u0006B/zYkE\u0000\u001155]*o9}\taY\u001bS\u00186HyD3^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP{\u0010dY\u00179T()HmR1^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zHd\u0017<e\u000f\n\txR\u0005D>)]\u001aiX\u0019\u001e7m]oT\u001c\u001e6?ZyV\u0013Tt\u0017LyD\u0015V>\u0004aY\u001bS\u000emR\u0000y>;MoE\u0007z55K";
      int var4 = "aY\u001bS{-Hy\u0017\u001a^/zHd\u0017\u001d\\+6LgR\u001aE:.@eYT^=zBdX\u0016r7;Zy\u0017)iX\u0019\u001f7m]oT\u001c\u001f6?ZyV\u0013Tu?GkU\u0018T\u0014(@m^\u001aP7\u001eFiB\u0019T5.\u0014mR\u0000a)?ZoE\u0002P96LLV\u0017T/)9^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zAkA\u001d_<zHxE\u001dG>>\teA\u0011C{\u000ejZ%*^\u0007\u0011:6[oV\u0010H{;]~V\u0017Y>>\t~XTE33Z*z\u0011B(;No\u0019>KE\u0013D6?G~\u0017\u0012^)ziDX\u0000\u007f.6E*G\u0015C:7L~R\u0006\u0011|\u007fZ-\u0017\u001bW{\u007fZ$\u0012\u0007\u00116/Z~\u0017\u001a^/zKo\u0017\u001aD76\u001aiX\u0019\u001e7m]oT\u001c\u001e6?ZyV\u0013Tt\u0017LyD\u0015V>\u001eKYTX6*EoZ\u0011_/;]cX\u001a\u00114<\t~_\u0011\u001104Fh\u00176^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5za^c$\u0011)?ZzX\u001aB><GR\u0007B:=L*Q\u001dC(.\tzV\u0006E{3Z*Y\u001bE{.LrC[I66\t\"Z\u0011B(;No\u0017\u001a^/z@d^\u0000X:6@pR\u0010\u00185aY\u001bS{<Hc[\u0011U{.F*G\u0006^-3Mo\u0017\u0015_{3Dz[\u0011\\>4]kC\u001d^5zFl\u0017\u001f_48jfV\u0007B IX\u0001]?zGeCTR)?H~RTy/.YIX\u001bZ2?ZAY\u001bS\u000baY\u001bS\u00186HyD\u0011B\nkC\u0000P82bdX\u0016=^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5zo^gTc>)YeY\u0007T{\u0017LyD\u0015V>,aY\u001bS{-Hy\u0017\u001a^/zHd\u0017\u001d\\+6LgR\u001aE:.@eYT^=zBdX\u0016r7;Zy\u00175^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5za^c$\u0011)?X\u007fR\u0007E2^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zHd\u0017<e\u000f\n\txR\u0007A44Zo6^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5zlgV\u001d]{\u0017LyD\u0015V><^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP5zo^gTc>+\\oD\u0000\u0011\u0016?ZyV\u0013T9^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zAkA\u001d_<zHxE\u001dG>>\teA\u0011C{\u0010dY\u001cIX\u0001]?zGeCTR)?H~RTy>;MoE\u0007z55K(cD'^:*\u0001#\u0017\u001dB{.[\u007fRTS..\t~_\u0011C>}Z*Y\u001b\u0011\b5Hz|\u001a^9.^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJ\u007fE\u0006T5.Es\u0017\u0017^5<@mB\u0006T?z^cC\u001c\u0011%*^\u0007\u0011:6[oV\u0010H{;]~V\u0017Y>>\t~XTE33Z*z\u0011B(;No\u0019*Jy\u001bE\u0015/Ef\u0017\u0019T/2Fn\u0017QBu\u007fZ*Z\u0001B/zGeCTC>.\\xYT_.6E\u0012mR\u0000y/.YIX\u001bZ2?ZAY\u001bS\u0012L^\u0006B/zYkE\u0000\u001155]*o9}\taY\u001bS\u00186HyD3^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u0015])?HnNTR44OcP\u0001C>>\tkDTP{\u0010dY\u00179T()HmR1^_\u001dB{\u0017LyD\u0015V>z@y\u0017\u001a^/zJeY\u0012X</[oSTP(zHd\u0017<e\u000f\n\txR\u0005D>)]\u001aiX\u0019\u001e7m]oT\u001c\u001e6?ZyV\u0013Tt\u0017LyD\u0015V>\u0004aY\u001bS\u000emR\u0000y>;MoE\u0007z55K"
         .length();
      char var1 = ',';
      int var8 = -1;

      label39:
      while (true) {
         byte var10000 = 60;
         String var10001 = var2.substring(++var8, var8 + var1);
         byte var10002 = -1;

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var8 += var1) >= var4) {
                     s = var5;
                     PROPERTY_ENABLE_ORIGINAL_DOCUMENT = s[1];

                     label26: {
                        try {
                           if (!Message.class.desiredAssertionStatus()) {
                              var10 = true;
                              break label26;
                           }
                        } catch (RuntimeException var6) {
                           throw a(var6);
                        }

                        var10 = false;
                     }

                     r = var10;
                     a = ConfigFactory.getBooleanProperty(s[34], false);
                     return;
                  }

                  var1 = var2.charAt(var8);
                  break;
               default:
                  var5[var3++] = var9;
                  if ((var8 += var1) < var4) {
                     var1 = var2.charAt(var8);
                     continue label39;
                  }

                  var2 = "\u001d,mkC\u0019)\u001b hkBK.\r\"g \u0001K3\u001f!l `\\4\u0019*n$Cj2\u001d6m AZ\u001e?- ,B^1\u001b.e+[O)\u0017,ne@H}\n+eeD@2\u001cc";
                  var4 = "\u001d,mkC\u0019)\u001b hkBK.\r\"g \u0001K3\u001f!l `\\4\u0019*n$Cj2\u001d6m AZ\u001e?- ,B^1\u001b.e+[O)\u0017,ne@H}\n+eeD@2\u001cc"
                     .length();
                  var1 = ')';
                  var8 = -1;
            }

            var10000 = 72;
            var10001 = var2.substring(++var8, var8 + var1);
            var10002 = 0;
         }
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 21);
      }

      return var10000;
   }

   private static String a(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 54;
            case 1 -> 11;
            case 2 -> 72;
            case 3 -> 13;
            case 4 -> 103;
            case 5 -> 102;
            default -> 21;
         });
      }

      return new String(var10001).intern();
   }
}
