package com.l7tech.policy.assertion.credential;

import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.AssertionNodeNameFactory;
import com.l7tech.policy.assertion.DefaultAssertionMetadata;
import com.l7tech.policy.assertion.annotation.ProcessesRequest;
import com.l7tech.policy.assertion.annotation.RequiresSOAP;

@ProcessesRequest
@RequiresSOAP(wss = true)
public class WsFederationPassiveTokenRequest extends WsFederationPassiveTokenAssertion {
   static final AssertionNodeNameFactory policyNameFactory;
   private String realm;
   private boolean timestamp;
   static final long serialVersionUID = -727721320587898769L;
   private static final String[] c;

   public WsFederationPassiveTokenRequest() {
   }

   public WsFederationPassiveTokenRequest(String var1, String var2, boolean var3, String var4, String var5, boolean var6) {
      super(var1, var5, var4, var3);
      this.realm = var2;
      this.timestamp = var6;
   }

   public String getRealm() {
      return this.realm;
   }

   public void setRealm(String var1) {
      this.realm = var1;
   }

   public boolean isTimestamp() {
      return this.timestamp;
   }

   public void setTimestamp(boolean var1) {
      this.timestamp = var1;
   }

   @Override
   public void copyFrom(WsFederationPassiveTokenAssertion var1) {
      super.copyFrom(var1);
      if (var1 instanceof WsFederationPassiveTokenRequest var2) {
         this.setRealm(var2.getRealm());
         this.setTimestamp(var2.isTimestamp());
      }
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = (DefaultAssertionMetadata)super.meta();
      String[] var2 = c;
      var1.put(var2[4], var2[2]);
      var1.put(var2[6], policyNameFactory);
      var1.put(var2[3], var2[5]);
      var1.put(var2[1], new String[]{var2[0]});
      return var1;
   }

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "\u000e]6^7\u00045\u0000P!I+\u001b\u000e\u001f_9^0\u0003\u0013)Q9_!\u0005\u0005%:M0\u001b\u0013$[)[1^6\u0016\u0002\u0006Q;\u001b\u0007\u0005\u0013\u000b[;O-\u0016\u001aO\u0016\u001aY0\u0016\u001f\u0001\u0017\u0014\u001f_9^0\u0003\u0013!Q1^\u0007\u001b\u0017\u001cM;Z)\u0012\u0017\u001d[&T(\u0001\u0013\u000bn4W!\u0003\u0002\np:_!9\u0017\u0002[";
      int var4 = "\u000e]6^7\u00045\u0000P!I+\u001b\u000e\u001f_9^0\u0003\u0013)Q9_!\u0005\u0005%:M0\u001b\u0013$[)[1^6\u0016\u0002\u0006Q;\u001b\u0007\u0005\u0013\u000b[;O-\u0016\u001aO\u0016\u001aY0\u0016\u001f\u0001\u0017\u0014\u001f_9^0\u0003\u0013!Q1^\u0007\u001b\u0017\u001cM;Z)\u0012\u0017\u001d[&T(\u0001\u0013\u000bn4W!\u0003\u0002\np:_!9\u0017\u0002["
         .length();
      char var1 = '\r';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 53;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = c(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     policyNameFactory = new b();
                     return;
                  }

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

                  var2 = "*w\u001e3\u000ef$,{\u001b3\u0001>>:w\u001fxL%\",}]J\u0011\u00175-}\u0001|\u00168?'H\u0012n\u00118&,L\u001cv\u0007?\u0002,i\u0006x\u0011%\u0000(t\u0016i\u00164\u001e&|\u0016\u00159w\u001ft\u0001(\u001e&|\u0016S\u0003<5\u000fy\u0010i\r#)";
                  var4 = "*w\u001e3\u000ef$,{\u001b3\u0001>>:w\u001fxL%\",}]J\u0011\u00175-}\u0001|\u00168?'H\u0012n\u00118&,L\u001cv\u0007?\u0002,i\u0006x\u0011%\u0000(t\u0016i\u00164\u001e&|\u0016\u00159w\u001ft\u0001(\u001e&|\u0016S\u0003<5\u000fy\u0010i\r#)"
                     .length();
                  var1 = 'B';
                  var7 = -1;
            }

            var10000 = 19;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

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

      return var10000;
   }

   private static String c(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 -> 90;
            case 1 -> 11;
            case 2 -> 96;
            case 3 -> 14;
            case 4 -> 113;
            case 5 -> 66;
            default -> 67;
         });
      }

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