diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml
index 3f17fd20503..fcb232ef040 100644
--- a/Mage.Client/pom.xml
+++ b/Mage.Client/pom.xml
@@ -6,7 +6,7 @@
org.mage
mage-root
- 1.4.22
+ 1.4.23
org.mage
diff --git a/Mage.Client/replay_pid4992.log b/Mage.Client/replay_pid4992.log
new file mode 100644
index 00000000000..f868e9b81c8
--- /dev/null
+++ b/Mage.Client/replay_pid4992.log
@@ -0,0 +1,4854 @@
+JvmtiExport can_access_local_variables 0
+JvmtiExport can_hotswap_or_post_breakpoint 0
+JvmtiExport can_post_on_exceptions 0
+# 515 ciObject found
+ciMethod java/lang/Object ()V 4097 1 4691130 0 0
+ciMethod java/lang/Object hashCode ()I 2049 1 256 0 -1
+ciMethod java/lang/Object equals (Ljava/lang/Object;)Z 2105 1 21073 0 64
+ciMethod java/lang/Object toString ()Ljava/lang/String; 49 1 333 0 -1
+ciMethod java/lang/String equals (Ljava/lang/Object;)Z 3073 20545 3625 0 -1
+ciMethod java/lang/System arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V 12289 1 1536 0 -1
+ciMethod java/lang/ref/Reference get ()Ljava/lang/Object; 1025 1 128 0 -1
+ciMethod java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 2105 609 5561 0 1184
+ciMethod java/util/Hashtable clear ()V 16465 181105 2228 0 0
+ciMethod java/util/Dictionary get (Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1
+ciMethod java/lang/StringBuffer setLength (I)V 4097 1 4021 0 0
+ciMethod java/lang/StringBuffer append (Ljava/lang/Object;)Ljava/lang/StringBuffer; 2097 1 1825 0 -1
+ciMethod java/lang/StringBuffer append (Ljava/lang/String;)Ljava/lang/StringBuffer; 1177 1 26195 0 -1
+ciMethod java/lang/StringBuffer append (C)Ljava/lang/StringBuffer; 4097 1 64756 0 -1
+ciMethod java/lang/StringBuffer toString ()Ljava/lang/String; 1009 1 5246 0 -1
+ciMethod java/lang/AbstractStringBuilder ensureCapacityInternal (I)V 4097 1 409393 0 640
+ciMethod java/lang/AbstractStringBuilder newCapacity (I)I 1961 1 5374 0 -1
+ciMethod java/lang/AbstractStringBuilder setLength (I)V 4097 1 4900 0 0
+ciMethod java/lang/StringBuilder ()V 1537 1 200278 0 -1
+ciMethod java/lang/StringBuilder append (Ljava/lang/String;)Ljava/lang/StringBuilder; 2809 1 312009 0 -1
+ciMethod java/lang/StringBuilder append (I)Ljava/lang/StringBuilder; 1 1 33965 0 -1
+ciMethod java/lang/StringBuilder append (F)Ljava/lang/StringBuilder; 0 0 1 0 -1
+ciMethod java/lang/StringBuilder toString ()Ljava/lang/String; 1537 1 201041 0 -1
+ciMethod java/lang/Float isNaN (F)Z 2201 1 8395 0 0
+ciMethod java/lang/Integer toString (I)Ljava/lang/String; 16393 1 22828 0 -1
+ciMethod java/lang/Integer parseInt (Ljava/lang/String;)I 9 1 60537 0 -1
+ciMethod java/util/Collection iterator ()Ljava/util/Iterator; 0 0 1 0 -1
+ciMethod java/util/Vector ()V 2057 1 7156 0 -1
+ciMethod java/util/Vector copyInto ([Ljava/lang/Object;)V 2049 1 5002 0 0
+ciMethod java/util/Vector ensureCapacityHelper (I)V 2049 1 6784 0 0
+ciMethod java/util/Vector grow (I)V 89 1 273 0 0
+ciMethod java/util/Vector hugeCapacity (I)I 0 0 1 0 -1
+ciMethod java/util/Vector size ()I 1041 1 130 0 0
+ciMethod java/util/Vector elementAt (I)Ljava/lang/Object; 1017 1 5311 0 576
+ciMethod java/util/Vector removeElementAt (I)V 841 1 5253 0 960
+ciMethod java/util/Vector addElement (Ljava/lang/Object;)V 2049 1 5390 0 896
+ciMethod java/util/Vector removeAllElements ()V 3113 4553 5585 0 544
+ciMethod java/util/Vector elementData (I)Ljava/lang/Object; 2057 1 15341 0 0
+ciMethod java/util/AbstractCollection ()V 1273 1 480923 0 -1
+ciMethod java/util/Stack push (Ljava/lang/Object;)Ljava/lang/Object; 2049 1 12896 0 0
+ciMethod java/util/Stack pop ()Ljava/lang/Object; 841 1 11280 0 0
+ciMethod java/util/Stack peek ()Ljava/lang/Object; 849 1 15915 0 0
+ciMethod java/util/Stack empty ()Z 857 1 9989 0 448
+ciMethod java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 2153 1 8540 0 0
+ciMethod java/util/AbstractSet ()V 145 1 43753 0 32
+ciMethod java/util/AbstractMap ()V 1073 1 80034 0 0
+ciMethod java/util/HashMap hash (Ljava/lang/Object;)I 4097 1 155209 0 160
+ciMethod java/util/HashMap tableSizeFor (I)I 3089 1 5528 0 128
+ciMethod java/util/HashMap (IF)V 1617 1 5328 0 352
+ciMethod java/util/HashMap (I)V 1601 1 8795 0 0
+ciMethod java/util/HashMap getNode (ILjava/lang/Object;)Ljava/util/HashMap$Node; 3145 33 14099 0 512
+ciMethod java/util/HashMap put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 2057 1 57987 0 2784
+ciMethod java/util/HashMap putVal (ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object; 2049 161 28294 0 -1
+ciMethod java/util/HashMap$Node getKey ()Ljava/lang/Object; 1329 1 166 0 0
+ciMethod java/lang/Math max (II)I 2049 1 235920 0 -1
+ciMethod java/util/Enumeration hasMoreElements ()Z 0 0 1 0 -1
+ciMethod java/util/Enumeration nextElement ()Ljava/lang/Object; 0 0 1 0 -1
+ciMethod java/util/Iterator hasNext ()Z 0 0 1 0 -1
+ciMethod java/util/Iterator next ()Ljava/lang/Object; 0 0 1 0 -1
+ciMethod java/util/Arrays fill ([CIIC)V 0 0 1 0 -1
+ciMethod java/util/Arrays copyOf ([Ljava/lang/Object;I)[Ljava/lang/Object; 1449 1 45278 0 -1
+ciMethod java/util/Arrays copyOf ([CI)[C 2057 1 241236 0 -1
+ciMethod java/util/LinkedHashMap afterNodeAccess (Ljava/util/HashMap$Node;)V 1 1 31749 0 288
+ciMethod java/util/LinkedHashMap (I)V 2073 1 6735 0 0
+ciMethod java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 3073 1 39112 0 1120
+ciMethod java/util/LinkedHashMap keySet ()Ljava/util/Set; 2113 1 8743 0 0
+ciMethodData java/lang/Object ()V 2 4691131 orig 264 72 34 205 106 0 0 0 0 128 4 175 22 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 217 149 60 2 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethod java/lang/IllegalArgumentException (Ljava/lang/String;)V 1 1 4435 0 -1
+ciMethod java/util/HashMap$TreeNode root ()Ljava/util/HashMap$TreeNode; 0 0 1 0 -1
+ciMethod java/util/HashMap$TreeNode find (ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode; 2081 1833 5700 0 -1
+ciMethod java/util/HashMap$TreeNode getTreeNode (ILjava/lang/Object;)Ljava/util/HashMap$TreeNode; 3233 1 1074 0 0
+ciMethodData java/util/HashMap hash (Ljava/lang/Object;)I 2 155323 orig 264 72 34 205 106 0 0 0 0 112 98 189 22 0 0 0 0 176 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 217 229 18 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 104 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 13 0x10007 0x255f2 0x38 0x6c9 0x50003 0x6c9 0x48 0x90005 0xe56c 0x26eda90 0x12a00 0x26edb20 0x218 oops 2 9 java/lang/String 11 java/lang/Class
+ciMethodData java/lang/AbstractStringBuilder ensureCapacityInternal (I)V 2 409393 orig 264 72 34 205 106 0 0 0 0 168 59 182 22 0 0 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 137 233 49 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 11 0 2 0 0 0 64 0 0 0 255 255 255 255 7 0 7 0 0 0 0 0 data 8 0x70007 0x60fa0 0x40 0x2d96 0x110002 0x2d96 0x140002 0x2d96 oops 0
+ciMethodData java/util/HashMap getNode (ILjava/lang/Object;)Ljava/util/HashMap$Node; 2 14099 orig 264 72 34 205 106 0 0 0 0 32 108 189 22 0 0 0 0 8 4 0 0 96 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 1 0 0 81 172 1 0 17 143 0 0 149 26 0 0 30 3 0 0 2 0 0 0 1 0 37 0 2 0 0 0 176 2 0 0 255 255 255 255 7 0 6 0 0 0 0 0 data 86 0x60007 0x278 0x2b0 0x3312 0xe0007 0x0 0x290 0x3312 0x1c0007 0xb48 0x270 0x27ca 0x250007 0x109c 0xb0 0x172e 0x310007 0x5ee 0x90 0x1140 0x350007 0x0 0x70 0x1140 0x3b0005 0xc15 0x174829a0 0xe 0x26eda90 0x51d 0x3ee007 0x406 0x20 0xd3b 0x4c0007 0x584 0x1a0 0xf1e 0x510004 0xfffffffffffff195 0x1fd08db0 0x87 0x1961b650 0xb3 0x54e007 0xe6b 0x80 0xb4 0x590004 0x0 0x1961b650 0xb4 0x0 0x0 0x5e0005 0x1 0x1961b650 0xb3 0x0 0x0 0x680007 0xdb9 0xb0 0x1137 0x740007 0xf5 0x90 0x1042 0x780007 0x0 0x70 0x1042 0x7e0005 0xec3 0x174829a0 0x4 0x26eda90 0x17b 0x810007 0x433 0x20 0xc0f 0x8f0007 0x1085 0xffffffffffffff50 0x167 oops 8 26 java/io/File 28 java/lang/String 40 java/util/HashMap$Node 42 java/util/HashMap$TreeNode 50 java/util/HashMap$TreeNode 56 java/util/HashMap$TreeNode 74 java/io/File 76 java/lang/String
+ciMethodData java/util/HashMap put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; 2 58302 orig 264 72 34 205 106 0 0 0 0 96 109 189 22 0 0 0 0 152 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 233 21 7 0 1 0 0 0 18 24 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 64 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 8 0x20002 0xe2bd 0x90005 0x7a27 0x1f1d6780 0x6886 0x21bd51c0 0x10 oops 2 4 java/util/HashMap 6 java/io/ExpiringCache$1
+ciMethodData java/util/Stack empty ()Z 2 9989 orig 264 72 34 205 106 0 0 0 0 16 136 187 22 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 209 52 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 104 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 13 0x10005 0x0 0x2204bcb0 0x269a 0x0 0x0 0x40007 0x184f 0x38 0xe4b 0x80003 0xe4b 0x18 oops 1 2 java/util/Stack
+ciMethodData java/util/Stack pop ()Ljava/lang/Object; 2 11281 orig 264 72 34 205 106 0 0 0 0 192 134 187 22 0 0 0 0 216 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 65 93 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 9 0 2 0 0 0 144 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 18 0x10005 0x0 0x2204bcb0 0x2ba8 0x0 0x0 0x60005 0x0 0x2204bcb0 0x2ba8 0x0 0x0 0xe0005 0x0 0x2204bcb0 0x2ba8 0x0 0x0 oops 3 2 java/util/Stack 8 java/util/Stack 14 java/util/Stack
+ciMethodData java/util/Stack peek ()Ljava/lang/Object; 2 15915 orig 264 72 34 205 106 0 0 0 0 112 135 187 22 0 0 0 0 216 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 0 0 0 9 238 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 144 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 18 0x10005 0x0 0x2204bcb0 0x3dc1 0x0 0x0 0x60007 0x3dc1 0x30 0x0 0xd0002 0x0 0x150005 0x0 0x2204bcb0 0x3dc1 0x0 0x0 oops 2 2 java/util/Stack 14 java/util/Stack
+ciMethodData java/util/Vector elementAt (I)Ljava/lang/Object; 2 5311 orig 264 72 34 205 106 0 0 0 0 224 40 187 22 0 0 0 0 128 2 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0 0 0 1 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 48 1 0 0 255 255 255 255 7 0 5 0 0 0 0 0 data 38 0x50007 0x1440 0x100 0x0 0x100002 0x0 0x140005 0x0 0x0 0x0 0x0 0x0 0x190005 0x0 0x0 0x0 0x0 0x0 0x200005 0x0 0x0 0x0 0x0 0x0 0x230005 0x0 0x0 0x0 0x0 0x0 0x260002 0x0 0x2c0005 0x0 0x2204bcb0 0xa89 0x21bc53a0 0x9b7 oops 2 34 java/util/Stack 36 java/util/Vector
+ciMethodData java/util/Vector removeElementAt (I)V 2 5253 orig 264 72 34 205 106 0 0 0 0 16 44 187 22 0 0 0 0 224 2 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 225 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 10 0 2 0 0 0 144 1 0 0 255 255 255 255 7 0 15 0 0 0 0 0 data 50 0xf0007 0x141c 0x100 0x0 0x1a0002 0x0 0x1e0005 0x0 0x0 0x0 0x0 0x0 0x230005 0x0 0x0 0x0 0x0 0x0 0x2a0005 0x0 0x0 0x0 0x0 0x0 0x2d0005 0x0 0x0 0x0 0x0 0x0 0x300002 0x0 0x350007 0x141c 0x30 0x0 0x3d0002 0x0 0x4b0007 0x1411 0x30 0xb 0x5b0002 0xb 0x710104 0x0 0x0 0x0 0x0 0x0 oops 0
+ciMethodData java/util/AbstractSet ()V 2 43824 orig 264 72 34 205 106 0 0 0 0 112 124 188 22 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 241 88 5 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0xab1e oops 0
+ciMethodData java/util/AbstractMap ()V 2 80080 orig 264 72 34 205 106 0 0 0 0 248 176 188 22 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 0 0 0 81 194 9 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x1384a oops 0
+ciMethod java/awt/Image getWidth (Ljava/awt/image/ImageObserver;)I 0 0 1 0 -1
+ciMethod java/awt/Image getHeight (Ljava/awt/image/ImageObserver;)I 0 0 1 0 -1
+ciMethod java/awt/Toolkit getDefaultToolkit ()Ljava/awt/Toolkit; 3321 1 24236 0 -1
+ciMethod java/awt/Toolkit createImage (Ljava/net/URL;)Ljava/awt/Image; 0 0 1 0 -1
+ciMethod java/awt/Toolkit prepareImage (Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z 0 0 1 0 -1
+ciMethod java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 3833 1 5743 0 64
+ciMethod java/util/LinkedHashMap$LinkedHashIterator nextNode ()Ljava/util/LinkedHashMap$Entry; 3713 1 34387 0 160
+ciMethodData java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 2 39112 orig 264 72 34 205 106 0 0 0 0 168 252 196 22 0 0 0 0 0 2 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 1 0 0 65 186 4 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 12 0 2 0 0 0 176 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 22 0x20002 0x9748 0x60005 0x7467 0x21bd51c0 0x824 0x1f1d5e60 0x1abd 0xb0007 0x92a1 0x20 0x4a7 0x140007 0x1535 0x50 0x7d6c 0x190005 0x0 0x21bd5270 0x7446 0x1f1d5e60 0x926 oops 4 4 java/io/ExpiringCache$1 6 java/util/LinkedHashMap 18 org/h2/util/SmallLRUCache 20 java/util/LinkedHashMap
+ciMethodData java/util/LinkedHashMap afterNodeAccess (Ljava/util/HashMap$Node;)V 2 31749 orig 264 72 34 205 106 0 0 0 0 72 247 196 22 0 0 0 0 104 2 0 0 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 224 3 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 17 0 2 0 0 0 24 1 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 35 0x40007 0x96 0x118 0x7b6f 0xe0007 0x7780 0xf8 0x3ef 0x120004 0x0 0x1fd06c70 0x3ef 0x0 0x0 0x290007 0x3eb 0x38 0x4 0x320003 0x4 0x18 0x3e0007 0x0 0x38 0x3ef 0x480003 0x3ef 0x18 0x4f0007 0x3ef 0x38 0x0 0x570003 0x0 0x18 oops 1 10 java/util/LinkedHashMap$Entry
+ciMethodData java/lang/Object equals (Ljava/lang/Object;)Z 2 21073 orig 264 72 34 205 106 0 0 0 0 232 6 175 22 0 0 0 0 136 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 81 138 2 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 2 0 0 0 0 0 data 7 0x20007 0x2d5c 0x38 0x23ee 0x60003 0x23ee 0x18 oops 0
+ciMethod java/util/EventObject (Ljava/lang/Object;)V 921 1 11278 0 0
+ciMethodData java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 2 5561 orig 264 72 34 205 106 0 0 0 0 64 124 178 22 0 0 0 0 40 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 1 0 0 145 165 0 0 169 36 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 11 0 2 0 0 0 216 0 0 0 255 255 255 255 5 0 6 0 0 0 0 0 data 27 0x60005 0x3be 0x26eda90 0x10db 0x216a1f90 0x19 0x1b0007 0xc28 0xa8 0xd1f 0x240007 0x48f 0x70 0x890 0x2d0005 0x10e 0x26eda90 0x658 0x17482200 0x12a 0x300007 0x6 0x20 0x88a 0x400003 0x495 0xffffffffffffff70 oops 4 2 java/lang/String 4 org/apache/log4j/CategoryKey 16 java/lang/String 18 java/lang/StringBuffer
+ciMethod javax/swing/event/EventListenerList getListenerList ()[Ljava/lang/Object; 1065 1 133 0 0
+ciMethod javax/swing/event/EventListenerList ()V 3281 1 8205 0 0
+ciMethodData java/util/Vector elementData (I)Ljava/lang/Object; 2 15341 orig 264 72 34 205 106 0 0 0 0 8 50 187 22 0 0 0 0 40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 97 215 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData java/lang/Float isNaN (F)Z 2 8466 orig 264 72 34 205 106 0 0 0 0 40 194 184 22 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 1 0 0 249 255 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 3 0 0 0 0 0 data 7 0x30007 0x1fff 0x38 0x0 0x70003 0x0 0x18 oops 0
+ciMethod javax/swing/text/DefaultStyledDocument$AbstractChangeHandler stateChanged (Ljavax/swing/event/ChangeEvent;)V 1817 1 227 0 0
+ciMethod javax/swing/text/DefaultStyledDocument$AbstractChangeHandler fireStateChanged (Ljavax/swing/text/DefaultStyledDocument;Ljavax/swing/event/ChangeEvent;)V 0 0 1 0 -1
+ciMethodData javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 2 6441 orig 264 72 34 205 106 0 0 0 0 32 150 174 29 0 0 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 1 0 0 1 193 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 9 0 0 0 0 0 data 6 0x90007 0x0 0x20 0x1820 0x260002 0x0 oops 0
+ciMethodData javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 2 17825 orig 264 72 34 205 106 0 0 0 0 136 85 174 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 233 36 2 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData javax/swing/text/StyleContext getCompressionThreshold ()I 2 6735 orig 264 72 34 205 106 0 0 0 0 168 38 173 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 0 0 0 113 205 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData javax/swing/text/StyleContext getMutableAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/MutableAttributeSet; 1 55 orig 264 72 34 205 106 0 0 0 0 240 41 173 29 0 0 0 0 32 2 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 55 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 26 0x10004 0x0 0x0 0x0 0x0 0x0 0x40007 0x0 0x70 0x0 0xb0007 0x0 0x50 0x0 0xf0004 0x0 0x0 0x0 0x0 0x0 0x150005 0x0 0x0 0x0 0x0 0x0 oops 0
+ciMethodData javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 8746 orig 264 72 34 205 106 0 0 0 0 56 76 174 29 0 0 0 0 88 2 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 1 0 0 249 4 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 11 0 2 0 0 0 8 1 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 33 0x50005 0x160 0x20af6f30 0x1e27 0x20af6fe0 0x118 0xc0007 0x1207 0xd8 0xe98 0x130007 0x489 0x68 0xa0f 0x1a0005 0x70 0x200808e0 0x8af 0x20af7090 0xf0 0x1f0003 0xa0f 0x18 0x250007 0x489 0x50 0xa0f 0x2a0005 0x70 0x200808e0 0x8af 0x20af7090 0xf0 oops 6 2 javax/swing/text/html/StyleSheet$SmallConversionSet 4 javax/swing/text/StyleContext$SmallAttributeSet 16 javax/swing/text/html/HTMLDocument$BlockElement 18 javax/swing/text/DefaultStyledDocument$SectionElement 29 javax/swing/text/html/HTMLDocument$BlockElement 31 javax/swing/text/DefaultStyledDocument$SectionElement
+ciMethodData javax/swing/text/StyleContext addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 5468 orig 264 72 34 205 106 0 0 0 0 64 34 173 29 0 0 0 0 88 3 0 0 112 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 209 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 15 0 2 0 0 0 0 2 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 64 0x10005 0x0 0x19920480 0x13e1 0x20af6f30 0x79 0x70005 0x0 0x19833e50 0xb05 0x21bd3140 0x955 0xe0005 0x5 0x21e87a00 0x115 0x1e76f040 0x1340 0x110007 0x0 0x110 0x145a 0x1c0005 0x0 0x19833e50 0x145a 0x0 0x0 0x260005 0x0 0x19833e50 0x145a 0x0 0x0 0x300005 0x0 0x19833e50 0x145a 0x0 0x0 0x370005 0x5 0x21e87a00 0x115 0x1e76f040 0x1340 0x3b0005 0x5 0x21e87a00 0x115 0x1e76f040 0x1340 0x410005 0x0 0x0 0x0 0x0 0x0 0x470005 0x0 0x0 0x0 0x0 0x0 oops 13 2 javax/swing/text/SimpleAttributeSet$EmptyAttributeSet 4 javax/swing/text/html/StyleSheet$SmallConversionSet 8 javax/swing/text/SimpleAttributeSet 10 javax/swing/text/html/StyleSheet$LargeConversionSet 14 javax/swing/text/StyleContext 16 javax/swing/text/html/StyleSheet 24 javax/swing/text/SimpleAttributeSet 30 javax/swing/text/SimpleAttributeSet 36 javax/swing/text/SimpleAttributeSet 42 javax/swing/text/StyleContext 44 javax/swing/text/html/StyleSheet 48 javax/swing/text/StyleContext 50 javax/swing/text/html/StyleSheet
+ciMethodData java/util/Vector removeAllElements ()V 2 8530 orig 264 72 34 205 106 0 0 0 0 56 47 187 22 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 2 0 0 97 162 0 0 201 248 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 6 0 2 0 0 0 104 0 0 0 255 255 255 255 7 0 17 0 0 0 0 0 data 13 0x110007 0x144c 0x68 0x1f19 0x1a0104 0x0 0x0 0x0 0x0 0x0 0x1e0003 0x1f19 0xffffffffffffffb0 oops 0
+ciMethodData javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 2 2648 orig 264 72 34 205 106 0 0 0 0 16 13 78 31 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 233 41 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 12 0x10005 0x6e 0x1e774a40 0x7e 0x1e774990 0x451 0x40004 0x0 0x1e76f040 0x53d 0x0 0x0 oops 3 2 javax/swing/text/html/HTMLDocument 4 javax/swing/plaf/basic/BasicHTML$BasicDocument 8 javax/swing/text/html/StyleSheet
+ciMethodData javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 2 2270 orig 264 72 34 205 106 0 0 0 0 128 112 75 31 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 0 0 0 193 68 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0x898 oops 0
+ciMethodData javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 2 3427 orig 264 72 34 205 106 0 0 0 0 32 246 82 31 0 0 0 0 104 8 0 0 24 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 0 0 0 193 68 0 0 161 106 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 45 0 2 0 0 0 16 7 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 226 0x60002 0x898 0xf0005 0x531 0x22045530 0x16c 0x220455e0 0x1fb 0x130002 0x898 0x1a0005 0x0 0x21bc4ff0 0x898 0x0 0x0 0x200004 0x0 0x1e774a40 0x10b 0x1e774990 0x78d 0x230007 0x0 0x598 0x898 0x2a0005 0x531 0x22045530 0x16c 0x220455e0 0x1fb 0x310005 0x0 0x1e774af0 0x398 0x200808e0 0x500 0x3c0005 0x0 0x1e76f040 0x898 0x0 0x0 0x430005 0x0 0x22045690 0x898 0x0 0x0 0x480007 0x747 0x50 0x151 0x4f0005 0x0 0x21bc53a0 0x151 0x0 0x0 0x540005 0x0 0x1e774af0 0x398 0x200808e0 0x500 0x590007 0x500 0x358 0x398 0x5e0005 0x0 0x1e774af0 0x398 0x0 0x0 0x670005 0x0 0x22045740 0x10ec 0x0 0x0 0x6c0007 0x398 0x2c0 0xd54 0x710005 0x0 0x22045740 0xd54 0x0 0x0 0x7a0004 0xfffffffffffff2f1 0x21bc90b0 0x68 0x1e771980 0x45 0x7d0007 0xd0f 0x228 0x45 0x850007 0x45 0x158 0x0 0x8c0005 0x0 0x0 0x0 0x0 0x0 0x950007 0x0 0x108 0x0 0x9a0004 0x0 0x0 0x0 0x0 0x0 0x9d0007 0x0 0xb8 0x0 0xa20004 0x0 0x0 0x0 0x0 0x0 0xac0005 0x0 0x0 0x0 0x0 0x0 0xb10007 0x0 0x38 0x0 0xb40003 0x0 0xfffffffffffffdf0 0xbb0004 0x0 0x1e771980 0x45 0x0 0x0 0xc00005 0x0 0x1e76f040 0x45 0x0 0x0 0xc70007 0x0 0x50 0x45 0xce0005 0x0 0x21bc53a0 0x45 0x0 0x0 0xd10003 0xd54 0xfffffffffffffd28 0xd40003 0x398 0xf8 0xdc0005 0x0 0x200808e0 0x500 0x0 0x0 0xe10004 0x0 0x1e771980 0x500 0x0 0x0 0xec0005 0x0 0x1e76f040 0x500 0x0 0x0 0xf30007 0x0 0x50 0x500 0xfa0005 0x0 0x21bc53a0 0x500 0x0 0x0 0xff0005 0x0 0x21bc53a0 0x898 0x0 0x0 0x10b0005 0x0 0x21bc53a0 0x898 0x0 0x0 0x1110005 0x0 0x20083930 0x898 0x0 0x0 0x1160002 0x898 0x1190003 0x898 0x28 0x1200002 0x0 oops 29 4 javax/swing/text/html/InlineView 6 javax/swing/text/html/ParagraphView 12 javax/swing/text/html/StyleSheet$SearchBuffer 18 javax/swing/text/html/HTMLDocument 20 javax/swing/plaf/basic/BasicHTML$BasicDocument 28 javax/swing/text/html/InlineView 30 javax/swing/text/html/ParagraphView 34 javax/swing/text/html/HTMLDocument$RunElement 36 javax/swing/text/html/HTMLDocument$BlockElement 40 javax/swing/text/html/StyleSheet 46 javax/swing/text/StyleContext$NamedStyle 56 java/util/Vector 62 javax/swing/text/html/HTMLDocument$RunElement 64 javax/swing/text/html/HTMLDocument$BlockElement 72 javax/swing/text/html/HTMLDocument$RunElement 78 javax/swing/text/StyleContext$KeyEnumeration 88 javax/swing/text/StyleContext$KeyEnumeration 94 javax/swing/text/StyleConstants 96 javax/swing/text/html/HTML$Tag 147 javax/swing/text/html/HTML$Tag 153 javax/swing/text/html/StyleSheet 163 java/util/Vector 175 javax/swing/text/html/HTMLDocument$BlockElement 181 javax/swing/text/html/HTML$Tag 187 javax/swing/text/html/StyleSheet 197 java/util/Vector 203 java/util/Vector 209 java/util/Vector 215 javax/swing/text/html/StyleSheet$ViewAttributeSet
+ciMethodData java/util/LinkedHashMap (I)V 2 6735 orig 264 72 34 205 106 0 0 0 0 72 249 196 22 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 97 202 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 2 0x20002 0x194c oops 0
+ciMethodData javax/swing/text/SimpleAttributeSet ()V 2 6726 orig 264 72 34 205 106 0 0 0 0 80 162 173 29 0 0 0 0 64 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 49 202 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 32 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 4 0x10002 0x1946 0xa0002 0x1946 oops 0
+ciMethodData javax/swing/text/StyleContext$NamedStyle fireStateChanged ()V 2 3679 orig 264 72 34 205 106 0 0 0 0 224 214 173 29 0 0 0 0 96 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 1 0 0 225 102 0 0 177 5 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 16 0 2 0 0 0 24 1 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 35 0x40005 0x0 0x260e7f70 0xcdc 0x0 0x0 0xe0007 0xcdc 0xe8 0xb6 0x160007 0x0 0xb0 0xb6 0x1d0007 0xa5 0x30 0x11 0x260002 0x11 0x310004 0x0 0x209c5950 0xb6 0x0 0x0 0x380005 0x0 0x209c5950 0xb6 0x0 0x0 0x400003 0xb6 0xffffffffffffff30 oops 3 2 javax/swing/event/EventListenerList 22 javax/swing/text/DefaultStyledDocument$StyleChangeHandler 28 javax/swing/text/DefaultStyledDocument$StyleChangeHandler
+ciMethodData javax/swing/text/StyleContext$NamedStyle addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 1 971 orig 264 72 34 205 106 0 0 0 0 160 221 173 29 0 0 0 0 184 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 1 0 0 145 21 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 13 0 0 0 0 0 data 12 0xd0005 0xc 0x21e87a00 0x9b 0x1e76f040 0x20b 0x140005 0x0 0x22045690 0x2b2 0x0 0x0 oops 3 2 javax/swing/text/StyleContext 4 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 2 4526 orig 264 72 34 205 106 0 0 0 0 144 20 83 31 0 0 0 0 64 2 0 0 216 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 105 77 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 21 0 2 0 0 0 0 1 0 0 255 255 255 255 5 0 3 0 0 0 0 0 data 32 0x30005 0x0 0x2204bcb0 0x9ad 0x0 0x0 0x60007 0x0 0x98 0x9ad 0xc0005 0x0 0x2204bcb0 0x9ad 0x0 0x0 0xf0004 0x0 0x21bc4ff0 0x9ad 0x0 0x0 0x130003 0x9ad 0x28 0x1a0002 0x0 0x1e0003 0x9ad 0x28 0x260002 0x0 oops 3 2 java/util/Stack 12 java/util/Stack 18 javax/swing/text/html/StyleSheet$SearchBuffer
+ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 2 4528 orig 264 72 34 205 106 0 0 0 0 128 22 83 31 0 0 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 153 109 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 6 0x40007 0xdb3 0x30 0x0 0xc0002 0x0 oops 0
+ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer releaseSearchBuffer (Ljavax/swing/text/html/StyleSheet$SearchBuffer;)V 2 4655 orig 264 72 34 205 106 0 0 0 0 48 21 83 31 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 145 113 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 12 0x10005 0x0 0x21bc4ff0 0xe32 0x0 0x0 0x80005 0x0 0x2204bcb0 0xe32 0x0 0x0 oops 2 2 javax/swing/text/html/StyleSheet$SearchBuffer 8 java/util/Stack
+ciMethodData javax/swing/text/html/StyleSheet$SearchBuffer empty ()V 2 4655 orig 264 72 34 205 106 0 0 0 0 232 23 83 31 0 0 0 0 56 2 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 129 137 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 13 0 2 0 0 0 240 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 30 0x40007 0xb4e 0x50 0x5e2 0xc0005 0x35 0x17482200 0x5ad 0x0 0x0 0x130007 0x0 0x50 0x1130 0x1a0005 0x0 0x21bc53a0 0x1130 0x0 0x0 0x210007 0x8e7 0x50 0x849 0x280005 0x0 0x26eee60 0x849 0x0 0x0 oops 3 6 java/lang/StringBuffer 16 java/util/Vector 26 java/util/Hashtable
+ciMethodData java/util/Vector ensureCapacityHelper (I)V 2 6784 orig 264 72 34 205 106 0 0 0 0 160 31 187 22 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 204 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 7 0 0 0 0 0 data 6 0x70007 0x195e 0x30 0x22 0xc0002 0x22 oops 0
+ciMethodData java/util/Vector grow (I)V 1 276 orig 264 72 34 205 106 0 0 0 0 112 32 187 22 0 0 0 0 232 1 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 73 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 18 0 2 0 0 0 152 0 0 0 255 255 255 255 7 0 11 0 0 0 0 0 data 19 0xb0007 0x109 0x38 0x0 0x120003 0x0 0x18 0x1b0007 0x102 0x20 0x7 0x240007 0x109 0x30 0x0 0x280002 0x0 0x320002 0x109 oops 0
+ciMethodData java/util/Vector addElement (Ljava/lang/Object;)V 2 5390 orig 264 72 34 205 106 0 0 0 0 200 45 187 22 0 0 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 113 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 64 0 0 0 255 255 255 255 2 0 17 0 0 0 0 0 data 8 0x110002 0x140e 0x240104 0x0 0x26edb20 0x416 0x216c4e00 0x4a oops 2 4 java/lang/Class 6 org/apache/log4j/Logger
+ciMethod java/util/NoSuchElementException ()V 9 1 1 0 -1
+ciMethodData java/util/HashMap (I)V 2 8795 orig 264 72 34 205 106 0 0 0 0 136 102 189 22 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 0 0 0 153 12 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 4 0 0 0 0 0 data 2 0x40002 0x2193 oops 0
+ciMethodData java/util/HashMap (IF)V 2 5328 orig 264 72 34 205 106 0 0 0 0 240 101 189 22 0 0 0 0 104 3 0 0 240 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 0 0 0 49 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 17 0 2 0 0 0 16 2 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 66 0x10002 0x1406 0x50007 0x1406 0xd0 0x0 0x100002 0x0 0x150005 0x0 0x0 0x0 0x0 0x0 0x190005 0x0 0x0 0x0 0x0 0x0 0x1c0005 0x0 0x0 0x0 0x0 0x0 0x1f0002 0x0 0x260007 0x1406 0x20 0x0 0x2f0007 0x0 0x50 0x1406 0x330002 0x1406 0x360007 0x1406 0xd0 0x0 0x410002 0x0 0x460005 0x0 0x0 0x0 0x0 0x0 0x4a0005 0x0 0x0 0x0 0x0 0x0 0x4d0005 0x0 0x0 0x0 0x0 0x0 0x500002 0x0 0x5b0002 0x1406 oops 0
+ciMethodData javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 2 12086 orig 264 72 34 205 106 0 0 0 0 104 169 173 29 0 0 0 0 136 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 177 105 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 6 0 0 0 0 0 data 6 0x60005 0x0 0x1f1d5e60 0x2d36 0x0 0x0 oops 1 2 java/util/LinkedHashMap
+ciMethodData java/util/EventObject (Ljava/lang/Object;)V 2 11278 orig 264 72 34 205 106 0 0 0 0 8 148 248 22 0 0 0 0 104 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 0 0 0 217 92 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 64 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 8 0x10002 0x2b9b 0x50007 0x2b9b 0x30 0x0 0xe0002 0x0 oops 0
+ciMethod javax/swing/event/ChangeListener stateChanged (Ljavax/swing/event/ChangeEvent;)V 0 0 1 0 -1
+ciMethod javax/swing/event/ChangeEvent (Ljava/lang/Object;)V 937 1 622 0 0
+ciMethod javax/swing/text/View getPreferredSpan (I)F 0 0 1 0 -1
+ciMethod javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 2425 1 14643 0 64
+ciMethod javax/swing/text/View getElement ()Ljavax/swing/text/Element; 1489 1 186 0 0
+ciMethod javax/swing/text/Document getProperty (Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1
+ciMethod javax/swing/text/AbstractDocument getAttributeContext ()Ljavax/swing/text/AbstractDocument$AttributeContext; 1057 1 132 0 0
+ciMethod javax/swing/text/StyleContext addStyle (Ljava/lang/String;Ljavax/swing/text/Style;)Ljavax/swing/text/Style; 2049 1 2635 0 0
+ciMethod javax/swing/text/StyleContext addAttribute (Ljavax/swing/text/AttributeSet;Ljava/lang/Object;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet; 2049 1 1622 0 -1
+ciMethod javax/swing/text/StyleContext addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2065 1 5468 0 5856
+ciMethod javax/swing/text/StyleContext removeAttribute (Ljavax/swing/text/AttributeSet;Ljava/lang/Object;)Ljavax/swing/text/AttributeSet; 97 1 20 0 -1
+ciMethod javax/swing/text/StyleContext getEmptySet ()Ljavax/swing/text/AttributeSet; 2049 1 6943 0 0
+ciMethod javax/swing/text/StyleContext reclaim (Ljavax/swing/text/AttributeSet;)V 2065 1 7031 0 -1
+ciMethod javax/swing/text/StyleContext getCompressionThreshold ()I 1289 1 6711 0 -1
+ciMethod javax/swing/text/StyleContext getImmutableUniqueSet ()Ljavax/swing/text/AttributeSet; 3225 1 6555 0 -1
+ciMethod javax/swing/text/StyleContext getMutableAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/MutableAttributeSet; 441 1 55 0 -1
+ciMethod javax/swing/text/AttributeSet getAttributeCount ()I 0 0 1 0 -1
+ciMethod javax/swing/text/AttributeSet isDefined (Ljava/lang/Object;)Z 0 0 1 0 -1
+ciMethod javax/swing/text/AttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1
+ciMethod javax/swing/text/AttributeSet getAttributeNames ()Ljava/util/Enumeration; 0 0 1 0 -1
+ciMethod javax/swing/text/MutableAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 0 0 1 0 -1
+ciMethod javax/swing/text/MutableAttributeSet addAttributes (Ljavax/swing/text/AttributeSet;)V 0 0 1 0 -1
+ciMethod javax/swing/text/MutableAttributeSet removeAttribute (Ljava/lang/Object;)V 0 0 1 0 -1
+ciMethod javax/swing/text/MutableAttributeSet removeAttributes (Ljavax/swing/text/AttributeSet;)V 0 0 1 0 -1
+ciMethod javax/swing/text/SimpleAttributeSet ()V 2049 1 6726 0 192
+ciMethod javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2113 1 8540 0 544
+ciMethod javax/swing/text/SimpleAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 17193 1 12672 0 1376
+ciMethod javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 4097 1 12086 0 96
+ciMethod javax/swing/text/SimpleAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 513 1 1407 0 0
+ciMethod javax/swing/text/StyleContext$NamedStyle (Ljavax/swing/text/StyleContext;Ljava/lang/String;Ljavax/swing/text/Style;)V 2065 1 2833 0 0
+ciMethod javax/swing/text/StyleContext$NamedStyle setName (Ljava/lang/String;)V 841 1 359 0 -1
+ciMethod javax/swing/text/StyleContext$NamedStyle fireStateChanged ()V 3097 361 3650 0 0
+ciMethod javax/swing/text/StyleContext$NamedStyle getAttributeCount ()I 2601 1 2325 0 0
+ciMethod javax/swing/text/StyleContext$NamedStyle addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 2249 1 971 0 -1
+ciMethod javax/swing/text/StyleContext$NamedStyle addAttributes (Ljavax/swing/text/AttributeSet;)V 5041 1 2661 0 0
+ciMethod javax/swing/text/StyleContext$NamedStyle removeAttribute (Ljava/lang/Object;)V 57 1 20 0 -1
+ciMethod javax/swing/text/StyleContext$NamedStyle setResolveParent (Ljavax/swing/text/AttributeSet;)V 0 0 1 0 -1
+ciMethod javax/swing/text/StyleContext$SmallAttributeSet getLocalAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2049 1529 6491 0 -1
+ciMethod javax/swing/text/StyleContext$SmallAttributeSet getAttributeCount ()I 2049 1 6372 0 0
+ciMethod javax/swing/text/StyleContext$SmallAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2049 1 9360 0 6656
+ciMethod javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2049 1 5391 0 192
+ciMethod javax/swing/text/StyleContext$SmallAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 185 1 23 0 -1
+ciMethod javax/swing/text/html/HTML$Tag toString ()Ljava/lang/String; 1209 1 151 0 -1
+ciMethod java/util/LinkedHashMap$LinkedKeySet (Ljava/util/LinkedHashMap;)V 329 1 2842 0 0
+ciMethod java/util/LinkedHashMap$LinkedKeySet iterator ()Ljava/util/Iterator; 4097 1 8741 0 0
+ciMethod java/util/Collections$3 (Ljava/util/Collection;)V 2153 1 8540 0 0
+ciMethod java/util/Collections$3 hasMoreElements ()Z 3649 1 5715 0 96
+ciMethod java/util/Collections$3 nextElement ()Ljava/lang/Object; 3929 1 9806 0 192
+ciMethod java/util/LinkedHashMap$LinkedKeyIterator (Ljava/util/LinkedHashMap;)V 4097 1 8741 0 -1
+ciMethod java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 3993 1 5744 0 160
+ciMethod javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 1041 1 130 0 0
+ciMethod javax/swing/text/Element getDocument ()Ljavax/swing/text/Document; 0 0 1 0 -1
+ciMethod javax/swing/text/Element getParentElement ()Ljavax/swing/text/Element; 0 0 1 0 -1
+ciMethod javax/swing/text/Element getAttributes ()Ljavax/swing/text/AttributeSet; 0 0 1 0 -1
+ciMethod javax/swing/text/Element isLeaf ()Z 0 0 1 0 -1
+ciMethod javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 3161 1 8746 0 1696
+ciMethod javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 3105 1 4255 0 0
+ciMethod javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 1025 1 128 0 0
+ciMethod javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 2081 1 17810 0 0
+ciMethod javax/swing/text/AbstractDocument$AbstractElement isLeaf ()Z 0 0 1 0 -1
+ciMethod javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 1025 1 128 0 0
+ciMethod javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 2049 1 5391 0 0
+ciMethod javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 2601 1 5478 0 96
+ciMethod javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 2121 1 6441 0 128
+ciMethodData java/util/HashMap$TreeNode getTreeNode (ILjava/lang/Object;)Ljava/util/HashMap$TreeNode; 1 1074 orig 264 72 34 205 106 0 0 0 0 160 23 202 22 0 0 0 0 240 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 148 1 0 0 241 20 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 10 0 2 0 0 0 152 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 19 0x40007 0x29e 0x68 0x0 0x80005 0x0 0x0 0x0 0x0 0x0 0xb0003 0x0 0x18 0x120005 0x62 0x1961b650 0x23c 0x0 0x0 oops 1 15 java/util/HashMap$TreeNode
+ciMethodData javax/swing/event/EventListenerList ()V 2 8205 orig 264 72 34 205 106 0 0 0 0 120 167 29 23 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 154 1 0 0 153 243 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x1e73 oops 0
+ciMethod javax/swing/text/html/HTML getTagForStyleConstantsKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/HTML$Tag; 1937 1 1818 0 0
+ciMethod javax/swing/text/html/StyleSheet getRule (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/Element;)Ljavax/swing/text/Style; 1809 6097 1538 0 0
+ciMethod javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 561 1 2269 0 0
+ciMethod javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2049 1 2270 0 0
+ciMethod javax/swing/text/html/StyleSheet addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2121 1 5303 0 0
+ciMethod javax/swing/text/html/StyleSheet removeHTMLTags (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 16569 17089 4850 0 0
+ciMethod javax/swing/text/html/StyleSheet convertAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2081 3113 5303 0 0
+ciMethod javax/swing/text/html/StyleSheet getResolvedStyle (Ljava/lang/String;Ljava/util/Vector;Ljavax/swing/text/html/HTML$Tag;)Ljavax/swing/text/Style; 2881 1 1573 0 -1
+ciMethod javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 1041 1 130 0 0
+ciMethod javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 1985 1 970 0 0
+ciMethod javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 2081 1 7254 0 1312
+ciMethod javax/swing/text/html/CSS styleConstantsValueToCSSValue (Ljavax/swing/text/StyleConstants;Ljava/lang/Object;)Ljava/lang/Object; 865 1 612 0 -1
+ciMethod javax/swing/text/html/CSS cssValueToStyleConstantsValue (Ljavax/swing/text/StyleConstants;Ljava/lang/Object;)Ljava/lang/Object; 0 0 1 0 -1
+ciMethod javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2049 1 2408 0 0
+ciMethod javax/swing/text/html/CSS getTableBorder (Ljavax/swing/text/AttributeSet;)I 0 0 234 0 0
+ciMethod javax/swing/text/html/CSS translateEmbeddedAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 729 2241 939 0 0
+ciMethod javax/swing/text/html/CSS translateAttributes (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 1465 1945 1538 0 0
+ciMethod javax/swing/text/html/CSS translateAttribute (Ljavax/swing/text/html/HTML$Attribute;Ljava/lang/String;Ljavax/swing/text/MutableAttributeSet;)V 145 145 353 0 0
+ciMethod javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 425 1 562 0 0
+ciMethod javax/swing/text/html/CSS getCssAttribute (Ljavax/swing/text/html/HTML$Attribute;)[Ljavax/swing/text/html/CSS$Attribute; 2057 1 353 0 0
+ciMethod javax/swing/text/html/CSS getCssAlignAttribute (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/CSS$Attribute; 0 0 78 0 0
+ciMethod javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 2049 1 2408 0 0
+ciMethod javax/swing/text/html/CSS isHTMLFontTag (Ljavax/swing/text/html/HTML$Tag;)Z 0 0 1 0 -1
+ciMethod javax/swing/text/html/CSS$Attribute getDefaultValue ()Ljava/lang/String; 17 1 2 0 0
+ciMethod javax/swing/text/html/CSS$CssValue parseCssValue (Ljava/lang/String;)Ljava/lang/Object; 641 1 80 0 -1
+ciMethod javax/swing/text/html/CSS$CssValue parseHtmlValue (Ljava/lang/String;)Ljava/lang/Object; 1969 1 246 0 -1
+ciMethod javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2113 1 5439 0 1504
+ciMethod javax/swing/text/html/StyleSheet$LargeConversionSet (Ljavax/swing/text/html/StyleSheet;)V 625 1 2541 0 0
+ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getAttributeCount ()I 2 6372 orig 264 72 34 205 106 0 0 0 0 208 247 173 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 33 191 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 2 5743 orig 264 72 34 205 106 0 0 0 0 88 126 231 22 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 1 0 0 129 164 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 7 0x40007 0x6dd 0x38 0xdb3 0x80003 0xdb3 0x18 oops 0
+ciMethodData java/util/Collections$3 hasMoreElements ()Z 2 5715 orig 264 72 34 205 106 0 0 0 0 208 18 174 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 1 0 0 89 164 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x1fd051c0 0x148b 0x0 0x0 oops 1 2 java/util/LinkedHashMap$LinkedKeyIterator
+ciMethodData java/util/LinkedHashMap$LinkedHashIterator nextNode ()Ljava/util/LinkedHashMap$Entry; 2 34387 orig 264 72 34 205 106 0 0 0 0 40 127 231 22 0 0 0 0 128 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 1 0 0 25 36 4 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 96 0 0 0 255 255 255 255 7 0 16 0 0 0 0 0 data 12 0x100007 0x8483 0x30 0x0 0x170002 0x0 0x1c0007 0x8483 0x30 0x0 0x230002 0x0 oops 0
+ciMethodData java/util/Collections$3 nextElement ()Ljava/lang/Object; 2 9806 orig 264 72 34 205 106 0 0 0 0 112 19 174 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 1 0 0 25 35 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x1fd051c0 0x2463 0x0 0x0 oops 1 2 java/util/LinkedHashMap$LinkedKeyIterator
+ciMethodData java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 2 5744 orig 264 72 34 205 106 0 0 0 0 200 23 174 29 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 1 0 0 233 163 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 12 0x10005 0x16 0x1fd051c0 0x1467 0x0 0x0 0x40005 0x16 0x1fd06c70 0x1467 0x0 0x0 oops 2 2 java/util/LinkedHashMap$LinkedKeyIterator 8 java/util/LinkedHashMap$Entry
+ciMethodData javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2 8540 orig 264 72 34 205 106 0 0 0 0 176 166 173 29 0 0 0 0 136 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 161 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 7 0 2 0 0 0 64 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 8 0x40005 0x0 0x1f1d5e60 0x2054 0x0 0x0 0x70002 0x2054 oops 1 2 java/util/LinkedHashMap
+ciMethodData java/util/LinkedHashMap keySet ()Ljava/util/Set; 2 8743 orig 264 72 34 205 106 0 0 0 0 72 255 196 22 0 0 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 249 8 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 48 0 0 0 255 255 255 255 7 0 6 0 0 0 0 0 data 6 0x60007 0x162e 0x30 0xaf1 0xe0002 0xaf1 oops 0
+ciMethodData java/util/LinkedHashMap$LinkedKeySet (Ljava/util/LinkedHashMap;)V 2 2842 orig 264 72 34 205 106 0 0 0 0 192 7 174 29 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41 0 0 0 137 87 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0xaf1 oops 0
+ciMethodData java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 2 8540 orig 264 72 34 205 106 0 0 0 0 224 75 188 22 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 1 0 0 121 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 5 0 0 0 0 0 data 2 0x50002 0x204f oops 0
+ciMethodData java/util/Collections$3 (Ljava/util/Collection;)V 2 8540 orig 264 72 34 205 106 0 0 0 0 56 18 174 29 0 0 0 0 144 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 1 0 0 121 2 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 8 0x60002 0x204f 0xe0005 0x0 0x1e6ad110 0x204f 0x0 0x0 oops 1 4 java/util/LinkedHashMap$LinkedKeySet
+ciMethodData javax/swing/text/SimpleAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 12672 orig 264 72 34 205 106 0 0 0 0 104 167 173 29 0 0 0 0 32 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 217 72 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 208 0 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 26 0x50005 0x0 0x1f1d5e60 0x291b 0x0 0x0 0xa0007 0x23d4 0xa0 0x547 0xe0005 0x0 0x21bd3140 0x53b 0x19833e50 0xc 0x130007 0x547 0x50 0x0 0x180005 0x0 0x0 0x0 0x0 0x0 oops 3 2 java/util/LinkedHashMap 12 javax/swing/text/html/StyleSheet$LargeConversionSet 14 javax/swing/text/SimpleAttributeSet
+ciMethodData java/lang/StringBuffer setLength (I)V 2 4021 orig 264 72 34 205 106 0 0 0 0 96 244 181 22 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 169 109 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 7 0 0 0 0 0 data 2 0x70002 0xdb5 oops 0
+ciMethodData java/lang/AbstractStringBuilder setLength (I)V 2 4900 orig 264 72 34 205 106 0 0 0 0 136 62 182 22 0 0 0 0 192 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 33 137 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 20 0 2 0 0 0 112 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 14 0x10007 0x1124 0x30 0x0 0x90002 0x0 0xf0002 0x1124 0x170007 0x1124 0x30 0x0 0x240002 0x0 oops 0
+ciMethodData javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 2 5478 orig 264 72 34 205 106 0 0 0 0 96 149 174 29 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 1 0 0 9 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 56 0 0 0 255 255 255 255 7 0 9 0 0 0 0 0 data 7 0x90007 0x722 0x38 0xcff 0xd0003 0xcff 0x18 oops 0
+ciMethod javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 10601 1 2648 0 0
+ciMethod javax/swing/text/StyledDocument getForeground (Ljavax/swing/text/AttributeSet;)Ljava/awt/Color; 0 0 1 0 -1
+ciMethodData java/util/LinkedHashMap$LinkedKeySet iterator ()Ljava/util/Iterator; 2 8741 orig 264 72 34 205 106 0 0 0 0 144 9 174 29 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 41 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 8 0 0 0 0 0 data 2 0x80002 0x2025 oops 0
+ciMethod javax/swing/text/html/ImageView getImageURL ()Ljava/net/URL; 2177 1 252 0 -1
+ciMethod javax/swing/text/html/ImageView getImage ()Ljava/awt/Image; 2273 1 6683 0 0
+ciMethod javax/swing/text/html/ImageView getLoadsSynchronously ()Z 2049 1 252 0 -1
+ciMethod javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 2145 1 526 0 0
+ciMethod javax/swing/text/html/ImageView getAttributes ()Ljavax/swing/text/AttributeSet; 2145 1 526 0 0
+ciMethod javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 89 1 526 0 0
+ciMethod javax/swing/text/html/ImageView getPreferredSpan (I)F 2049 1 5416 0 -1
+ciMethod javax/swing/text/html/ImageView isLink ()Z 2145 1 526 0 0
+ciMethod javax/swing/text/html/ImageView getPreferredSpanFromAltView (I)F 2041 1 5416 0 0
+ciMethod javax/swing/text/html/ImageView getIntAttr (Ljavax/swing/text/html/HTML$Attribute;I)I 2049 1 2082 0 0
+ciMethod javax/swing/text/html/ImageView sync ()V 2065 1 5451 0 544
+ciMethod javax/swing/text/html/ImageView refreshImage ()V 57 1 252 0 0
+ciMethod javax/swing/text/html/ImageView loadImage ()V 2049 1 252 0 0
+ciMethod javax/swing/text/html/ImageView updateImageSize ()V 2049 1 252 0 0
+ciMethod javax/swing/text/html/ImageView updateAltTextView ()V 0 0 1 0 -1
+ciMethod javax/swing/text/html/ImageView getAltView ()Ljavax/swing/text/View; 0 0 1 0 -1
+ciMethod javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 561 121 2270 0 0
+ciMethod javax/swing/text/html/MuxingAttributeSet ()V 2049 1 2270 0 0
+ciMethod javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 2601 1 2270 0 0
+ciMethod javax/swing/text/html/StyleSheet$SearchBuffer ()V 57 1 7 0 -1
+ciMethod javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 16393 1 4526 0 0
+ciMethod javax/swing/text/html/StyleSheet$SearchBuffer releaseSearchBuffer (Ljavax/swing/text/html/StyleSheet$SearchBuffer;)V 8169 1 4526 0 0
+ciMethod javax/swing/text/html/StyleSheet$SearchBuffer getStringBuffer ()Ljava/lang/StringBuffer; 2881 1 1573 0 -1
+ciMethod javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 8169 1 4526 0 0
+ciMethod javax/swing/text/html/StyleSheet$SearchBuffer empty ()V 2041 1 4655 0 0
+ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getLocalAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 13361 orig 264 72 34 205 106 0 0 0 0 24 244 173 29 0 0 0 0 248 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 217 194 0 0 145 155 1 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 10 0 2 0 0 0 168 0 0 0 255 255 255 255 7 0 4 0 0 0 0 0 data 21 0x40007 0x185b 0x20 0x0 0x160007 0xa33 0x88 0x419a 0x1d0005 0x335d 0x21bc90b0 0x43a 0x26eda90 0xa03 0x200007 0x3372 0x20 0xe28 0x2c0003 0x3372 0xffffffffffffff90 oops 2 10 javax/swing/text/StyleConstants 12 java/lang/String
+ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 9360 orig 264 72 34 205 106 0 0 0 0 144 250 173 29 0 0 0 0 32 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 129 28 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 208 0 0 0 255 255 255 255 5 0 2 0 0 0 0 0 data 26 0x20005 0x0 0x20af6f30 0x152f 0x20af6fe0 0xe61 0x70007 0x15e9 0xa0 0xda7 0xb0005 0x0 0x20af6f30 0xb65 0x20af6fe0 0x242 0x100007 0xc70 0x50 0x137 0x150005 0x0 0x22045690 0x137 0x0 0x0 oops 5 2 javax/swing/text/html/StyleSheet$SmallConversionSet 4 javax/swing/text/StyleContext$SmallAttributeSet 12 javax/swing/text/html/StyleSheet$SmallConversionSet 14 javax/swing/text/StyleContext$SmallAttributeSet 22 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 2 5439 orig 264 72 34 205 106 0 0 0 0 128 254 76 31 0 0 0 0 224 2 0 0 80 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 185 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 25 0 2 0 0 0 144 1 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 50 0x10004 0xfffffffffffff3d3 0x21bc90b0 0x73e 0x198367a0 0x3f 0x40007 0xc2d 0x150 0x80a 0xb0002 0x80a 0xf0004 0x0 0x21bc90b0 0x73e 0x20afa5b0 0xcc 0x120005 0x0 0x21e87730 0x80a 0x0 0x0 0x170007 0x760 0xc0 0xaa 0x1c0002 0xaa 0x210007 0xaa 0x90 0x0 0x280002 0x0 0x2c0004 0x0 0x0 0x0 0x0 0x0 0x300005 0x0 0x0 0x0 0x0 0x0 0x360002 0x1437 oops 5 2 javax/swing/text/StyleConstants 4 javax/swing/text/html/CSS$Attribute 14 javax/swing/text/StyleConstants 16 javax/swing/text/StyleConstants$ParagraphConstants 20 javax/swing/text/html/CSS
+ciMethodData javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 2 7254 orig 264 72 34 205 106 0 0 0 0 48 235 75 31 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 0 0 145 218 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 12 0x40005 0x0 0x26eee60 0x1b52 0x0 0x0 0x70104 0x0 0x198367a0 0x469 0x0 0x0 oops 2 2 java/util/Hashtable 8 javax/swing/text/html/CSS$Attribute
+ciMethodData javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 2 14649 orig 264 72 34 205 106 0 0 0 0 128 133 169 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 1 0 0 81 192 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x20e5 0x20080830 0xbed 0x200808e0 0xb38 oops 2 2 javax/swing/text/AbstractDocument$BranchElement 4 javax/swing/text/html/HTMLDocument$BlockElement
+ciMethodData java/util/Hashtable clear ()V 1 24508 orig 264 72 34 205 106 0 0 0 0 16 130 178 22 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 8 0 0 81 5 0 0 113 58 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 6 0 2 0 0 0 104 0 0 0 255 255 255 255 7 0 22 0 0 0 0 0 data 13 0x160007 0xaa 0x68 0x74e 0x1c0104 0x0 0x0 0x0 0x0 0x0 0x1d0003 0x74e 0xffffffffffffffb0 oops 0
+ciMethodData java/util/HashMap tableSizeFor (I)I 2 5528 orig 264 72 34 205 106 0 0 0 0 248 100 189 22 0 0 0 0 152 1 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 130 1 0 0 177 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 8 0 2 0 0 0 112 0 0 0 255 255 255 255 7 0 37 0 0 0 0 0 data 14 0x250007 0x1408 0x38 0xe 0x290003 0xe 0x50 0x2f0007 0x1408 0x38 0x0 0x340003 0x0 0x18 oops 0
+ciMethod javax/swing/ImageIcon ()V 2009 1 247 0 -1
+ciMethod javax/swing/ImageIcon setImage (Ljava/awt/Image;)V 2009 1 247 0 -1
+ciMethodData java/util/Stack push (Ljava/lang/Object;)Ljava/lang/Object; 2 12898 orig 264 72 34 205 106 0 0 0 0 24 134 187 22 0 0 0 0 128 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 17 139 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 2 0 0 0 0 0 data 6 0x20005 0x0 0x2204bcb0 0x3162 0x0 0x0 oops 1 2 java/util/Stack
+ciMethodData javax/swing/text/StyleContext getEmptySet ()Ljavax/swing/text/AttributeSet; 2 6943 orig 264 72 34 205 106 0 0 0 0 120 37 173 29 0 0 0 0 32 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 249 208 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 2 5391 orig 264 72 34 205 106 0 0 0 0 48 251 173 29 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 12 0 0 0 0 0 data 2 0xc0002 0x140f oops 0
+ciMethodData javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 2 5391 orig 264 72 34 205 106 0 0 0 0 192 148 174 29 0 0 0 0 64 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 160 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0x140f oops 0
+ciMethodData javax/swing/event/ChangeEvent (Ljava/lang/Object;)V 1 622 orig 264 72 34 205 106 0 0 0 0 24 189 158 29 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 0 0 0 201 15 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 2 0x20002 0x1f9 oops 0
+ciMethodData javax/swing/text/html/StyleSheet convertAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 8890 orig 264 72 34 205 106 0 0 0 0 248 127 75 31 0 0 0 0 16 6 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 1 0 0 97 158 0 0 169 9 1 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 39 0 2 0 0 0 192 4 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 152 0x10004 0xffffffffffffec34 0x199221e0 0x3 0x19833e50 0x2 0x40007 0x0 0x70 0x13cc 0x80004 0xffffffffffffec34 0x199221e0 0x3 0x19833e50 0x2 0xb0007 0x13cc 0x20 0x0 0x110005 0x100 0x199221e0 0x1ba 0x19833e50 0x1112 0x180005 0x0 0x205f8b00 0x20f8 0x22045740 0x17e 0x1d0007 0xa2a 0x3c0 0x184c 0x210005 0x0 0x205f8b00 0x16ce 0x22045740 0x17e 0x280004 0xfffffffffffff156 0x1e771980 0x2 0x198367a0 0x2 0x2b0007 0xeaa 0x328 0x9a2 0x330002 0x9a2 0x390005 0x6e8 0x199221e0 0x1ba 0x1e774af0 0x100 0x420005 0x0 0x205f8b00 0x19af 0x22045740 0x27e 0x470007 0x9a2 0x298 0x128b 0x4c0005 0x0 0x205f8b00 0x110d 0x22045740 0x17e 0x580004 0xfffffffffffff717 0x1e771980 0x2 0x198367a0 0x2 0x5b0007 0x8e9 0x180 0x9a2 0x640004 0x0 0x21bc90b0 0x9a2 0x0 0x0 0x670005 0x0 0x21e87730 0x9a2 0x0 0x0 0x6e0007 0x9a2 0x100 0x0 0x740005 0x0 0x0 0x0 0x0 0x0 0x810004 0x0 0x0 0x0 0x0 0x0 0x860005 0x0 0x0 0x0 0x0 0x0 0x8d0007 0x0 0x50 0x0 0x960005 0x0 0x0 0x0 0x0 0x0 0x9d0007 0x0 0x80 0x128b 0xa70005 0xda0 0x199221e0 0x36d 0x1e774af0 0x17e 0xac0005 0x0 0x21bd3140 0x128b 0x0 0x0 0xb10003 0x128b 0xfffffffffffffd50 0xb70003 0xeaa 0xfffffffffffffc28 oops 25 2 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 4 javax/swing/text/SimpleAttributeSet 12 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 14 javax/swing/text/SimpleAttributeSet 22 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 24 javax/swing/text/SimpleAttributeSet 28 java/util/Collections$3 30 javax/swing/text/StyleContext$KeyEnumeration 38 java/util/Collections$3 40 javax/swing/text/StyleContext$KeyEnumeration 44 javax/swing/text/html/HTML$Tag 46 javax/swing/text/html/CSS$Attribute 56 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 58 javax/swing/text/html/HTMLDocument$RunElement 62 java/util/Collections$3 64 javax/swing/text/StyleContext$KeyEnumeration 72 java/util/Collections$3 74 javax/swing/text/StyleContext$KeyEnumeration 78 javax/swing/text/html/HTML$Tag 80 javax/swing/text/html/CSS$Attribute 88 javax/swing/text/StyleConstants 94 javax/swing/text/html/CSS 136 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 138 javax/swing/text/html/HTMLDocument$RunElement 142 javax/swing/text/html/StyleSheet$LargeConversionSet
+ciMethodData javax/swing/text/html/StyleSheet$LargeConversionSet (Ljavax/swing/text/html/StyleSheet;)V 2 2541 orig 264 72 34 205 106 0 0 0 0 224 108 77 31 0 0 0 0 56 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 78 0 0 0 249 76 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 2 0x60002 0x99f oops 0
+ciMethodData javax/swing/text/html/StyleSheet addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 5303 orig 264 72 34 205 106 0 0 0 0 96 122 75 31 0 0 0 0 248 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 1 0 0 113 157 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 160 0 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 20 0x10004 0xffffffffffffee07 0x19833e50 0x1 0x199221e0 0x1b5 0x40007 0x1b5 0x30 0x11f9 0xa0002 0x11f9 0x120005 0x0 0x1e76f040 0x13ac 0x19922c90 0x2 0x150002 0x13ae oops 4 2 javax/swing/text/SimpleAttributeSet 4 javax/swing/text/html/HTMLDocument$TaggedAttributeSet 14 javax/swing/text/html/StyleSheet 16 javax/swing/plaf/basic/BasicEditorPaneUI$StyleSheetUIResource
+ciMethodData javax/swing/text/html/StyleSheet removeHTMLTags (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 6052 orig 264 72 34 205 106 0 0 0 0 144 126 75 31 0 0 0 0 208 3 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 1 0 0 225 86 0 0 97 122 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 18 0 2 0 0 0 120 2 0 0 255 255 255 255 4 0 1 0 0 0 0 0 data 79 0x10004 0xfffffffffffff524 0x19833e50 0x75 0x1e774af0 0xc 0x40007 0x0 0x248 0xadc 0x80004 0xfffffffffffff524 0x19833e50 0x75 0x1e774af0 0xc 0xb0007 0x0 0x1f8 0xadc 0xf0005 0x0 0x19833e50 0xa5c 0x1e774af0 0x80 0x160005 0x0 0x205f8b00 0x18e7 0x22045740 0x141 0x1b0007 0xadc 0x178 0xf4c 0x1f0005 0x0 0x205f8b00 0xe8b 0x22045740 0xc1 0x280004 0xfffffffffffff518 0x198367a0 0x24 0x21bc90b0 0x464 0x2b0007 0xae8 0xe0 0x464 0x300004 0x0 0x21bc90b0 0x464 0x0 0x0 0x330002 0x464 0x3a0007 0x464 0x80 0x0 0x400005 0x0 0x0 0x0 0x0 0x0 0x450007 0x0 0x30 0x0 0x4c0002 0x0 0x500003 0xf4c 0xfffffffffffffe70 oops 13 2 javax/swing/text/SimpleAttributeSet 4 javax/swing/text/html/HTMLDocument$RunElement 12 javax/swing/text/SimpleAttributeSet 14 javax/swing/text/html/HTMLDocument$RunElement 22 javax/swing/text/SimpleAttributeSet 24 javax/swing/text/html/HTMLDocument$RunElement 28 java/util/Collections$3 30 javax/swing/text/StyleContext$KeyEnumeration 38 java/util/Collections$3 40 javax/swing/text/StyleContext$KeyEnumeration 44 javax/swing/text/html/CSS$Attribute 46 javax/swing/text/StyleConstants 54 javax/swing/text/StyleConstants
+ciMethodData java/util/Vector copyInto ([Ljava/lang/Object;)V 2 5166 orig 264 72 34 205 106 0 0 0 0 152 29 187 22 0 0 0 0 96 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 113 153 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 11 0 0 0 0 0 data 2 0xb0002 0x132e oops 0
+ciMethodData javax/swing/text/StyleContext$NamedStyle (Ljavax/swing/text/StyleContext;Ljava/lang/String;Ljavax/swing/text/Style;)V 2 2833 orig 264 72 34 205 106 0 0 0 0 208 208 173 29 0 0 0 0 80 2 0 0 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 121 80 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 15 0 2 0 0 0 240 0 0 0 255 255 255 255 2 0 6 0 0 0 0 0 data 30 0x60002 0xa0f 0xe0002 0xa0f 0x1b0005 0x6 0x1e76f040 0xa01 0x21e87a00 0x8 0x220007 0x911 0x50 0xfe 0x270005 0x0 0x22045690 0xfe 0x0 0x0 0x2b0007 0xa0f 0x50 0x0 0x300005 0x0 0x0 0x0 0x0 0x0 oops 3 6 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext 16 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/StyleContext$NamedStyle setName (Ljava/lang/String;)V 1 371 orig 264 72 34 205 106 0 0 0 0 32 212 173 29 0 0 0 0 160 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 81 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 80 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 10 0x10007 0x0 0x50 0x10a 0x90005 0x0 0x22045690 0x10a 0x0 0x0 oops 1 6 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/StyleContext$NamedStyle setResolveParent (Ljavax/swing/text/AttributeSet;)V 1 0 orig 264 72 34 205 106 0 0 0 0 8 225 173 29 0 0 0 0 232 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 152 0 0 0 255 255 255 255 7 0 1 0 0 0 0 0 data 19 0x10007 0x0 0x68 0x0 0x90005 0x0 0x0 0x0 0x0 0x0 0xc0003 0x0 0x48 0x130005 0x0 0x0 0x0 0x0 0x0 oops 0
+ciMethodData javax/swing/text/StyleContext$NamedStyle removeAttribute (Ljava/lang/Object;)V 1 20 orig 264 72 34 205 106 0 0 0 0 240 222 173 29 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 105 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 255 255 255 255 5 0 12 0 0 0 0 0 data 12 0xc0005 0x0 0x1e76f040 0xd 0x0 0x0 0x130005 0x0 0x22045690 0xd 0x0 0x0 oops 2 2 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/StyleContext addStyle (Ljava/lang/String;Ljavax/swing/text/Style;)Ljavax/swing/text/Style; 2 2671 orig 264 72 34 205 106 0 0 0 0 232 24 173 29 0 0 0 0 184 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 121 75 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 96 0 0 0 255 255 255 255 2 0 7 0 0 0 0 0 data 12 0x70002 0x96f 0xc0007 0x873 0x50 0xfc 0x150005 0x0 0x22045690 0xfc 0x0 0x0 oops 1 8 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/StyleContext$NamedStyle addAttributes (Ljavax/swing/text/AttributeSet;)V 2 2661 orig 264 72 34 205 106 0 0 0 0 72 222 173 29 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 9 64 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 12 0 0 0 0 0 data 12 0xc0005 0x0 0x1e76f040 0x801 0x0 0x0 0x130005 0x0 0x22045690 0x801 0x0 0x0 oops 2 2 javax/swing/text/html/StyleSheet 8 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/SimpleAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 2 1407 orig 264 72 34 205 106 0 0 0 0 232 172 173 29 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 249 41 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 255 255 255 255 5 0 7 0 0 0 0 0 data 12 0x70005 0x0 0x1f1d5e60 0x53f 0x0 0x0 0xa0104 0x0 0x0 0x0 0x0 0x0 oops 1 2 java/util/LinkedHashMap
+ciMethodData javax/swing/text/html/HTML getTagForStyleConstantsKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/HTML$Tag; 2 1828 orig 264 72 34 205 106 0 0 0 0 136 225 74 31 0 0 0 0 168 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 0 0 0 145 49 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 96 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 12 0x40005 0x0 0x26eee60 0x632 0x0 0x0 0x70104 0x0 0x0 0x0 0x0 0x0 oops 1 2 java/util/Hashtable
+ciMethodData javax/swing/text/html/ImageView sync ()V 2 5451 orig 264 72 34 205 106 0 0 0 0 240 166 82 31 0 0 0 0 224 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 73 162 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 14 0 2 0 0 0 152 0 0 0 255 255 255 255 7 0 9 0 0 0 0 0 data 19 0x90007 0x13e9 0x30 0x60 0xd0002 0x60 0x190007 0x1386 0x68 0xc3 0x300003 0xc3 0x18 0x390005 0x0 0x1e8189c0 0xc3 0x0 0x0 oops 1 15 javax/swing/text/html/ImageView
+ciMethodData javax/swing/text/html/ImageView refreshImage ()V 1 252 orig 264 72 34 205 106 0 0 0 0 80 168 82 31 0 0 0 0 168 1 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 169 7 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 255 255 255 255 3 0 42 0 0 0 0 0 data 16 0x2a0003 0xf5 0x18 0x330002 0xf5 0x370002 0xf5 0x4c0003 0xf5 0x18 0x540003 0xf5 0x30 0x6d0003 0x0 0x18 oops 0
+ciMethodData javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 1 526 orig 264 72 34 205 106 0 0 0 0 112 151 82 31 0 0 0 0 144 5 0 0 24 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 0 0 25 16 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 32 0 2 0 0 0 72 4 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 137 0x10005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x80005 0x0 0x1e76f040 0x203 0x0 0x0 0x140002 0x203 0x170007 0x203 0x38 0x0 0x1b0003 0x0 0x18 0x1f0002 0x203 0x2d0002 0x203 0x440002 0x203 0x560005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x590004 0x0 0x1e774990 0x1f9 0x1e774a40 0xa 0x5d0005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x600005 0x0 0x1e774990 0x1f9 0x1e774a40 0xa 0x690005 0x0 0x1e8189c0 0x1f9 0x1e7748e0 0xa 0x6c0005 0x0 0x1e774af0 0x203 0x0 0x0 0x760005 0x0 0x1e774af0 0x203 0x0 0x0 0x820007 0x1dd 0x108 0x26 0x860005 0x0 0x26eda90 0x26 0x0 0x0 0x8d0005 0x0 0x26eda90 0x26 0x0 0x0 0x900007 0x26 0x38 0x0 0x980003 0x0 0x68 0x9e0005 0x0 0x26eda90 0x26 0x0 0x0 0xa10007 0x26 0x20 0x0 0xae0005 0x0 0x1e774af0 0x203 0x0 0x0 0xb30104 0x0 0x0 0x0 0x0 0x0 0xba0007 0x203 0xa0 0x0 0xc20005 0x0 0x0 0x0 0x0 0x0 0xc70007 0x0 0x50 0x0 0xdc0003 0x0 0x18 0xe70003 0x0 0x30 0xfe0003 0x203 0x18 oops 19 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 8 javax/swing/text/html/StyleSheet 29 javax/swing/text/html/ImageView 31 org/mage/card/arcane/UI$1$1$1 35 javax/swing/plaf/basic/BasicHTML$BasicDocument 37 javax/swing/text/html/HTMLDocument 41 javax/swing/text/html/ImageView 43 org/mage/card/arcane/UI$1$1$1 47 javax/swing/plaf/basic/BasicHTML$BasicDocument 49 javax/swing/text/html/HTMLDocument 53 javax/swing/text/html/ImageView 55 org/mage/card/arcane/UI$1$1$1 59 javax/swing/text/html/HTMLDocument$RunElement 65 javax/swing/text/html/HTMLDocument$RunElement 75 java/lang/String 81 java/lang/String 94 java/lang/String 104 javax/swing/text/html/HTMLDocument$RunElement
+ciMethodData javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 2 4255 orig 264 72 34 205 106 0 0 0 0 216 76 174 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 1 0 0 217 120 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x20af6f30 0xf1b 0x0 0x0 oops 1 2 javax/swing/text/html/StyleSheet$SmallConversionSet
+ciMethodData javax/swing/text/html/ImageView getImage ()Ljava/awt/Image; 2 7073 orig 264 72 34 205 106 0 0 0 0 152 145 82 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 1 0 0 41 212 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x1a85 oops 0
+ciMethodData javax/swing/text/html/ImageView getPreferredSpan (I)F 2 5416 orig 264 72 34 205 106 0 0 0 0 32 159 82 31 0 0 0 0 144 4 0 0 80 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 161 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 36 0 2 0 0 0 64 3 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 104 0x10002 0x1428 0x50007 0x2e7 0x50 0x1141 0xf0007 0x0 0x30 0x1141 0x140002 0x1141 0x2a0007 0x0 0x50 0x2e7 0x360007 0x0 0x30 0x2e7 0x3b0002 0x2e7 0x500005 0x0 0x0 0x0 0x0 0x0 0x550007 0x0 0x110 0x0 0x590008 0x6 0x0 0x40 0x0 0x40 0x0 0x40 0x9c0002 0x0 0xa10005 0x0 0x0 0x0 0x0 0x0 0xa50005 0x0 0x0 0x0 0x0 0x0 0xa80005 0x0 0x0 0x0 0x0 0x0 0xab0002 0x0 0xb00002 0x0 0xb80007 0x0 0x50 0x0 0xbd0005 0x0 0x0 0x0 0x0 0x0 0xc30008 0x6 0x0 0x40 0x0 0x40 0x0 0x40 0x10a0002 0x0 0x10f0005 0x0 0x0 0x0 0x0 0x0 0x1130005 0x0 0x0 0x0 0x0 0x0 0x1160005 0x0 0x0 0x0 0x0 0x0 0x1190002 0x0 oops 0
+ciMethodData javax/swing/text/html/ImageView getPreferredSpanFromAltView (I)F 2 5731 orig 264 72 34 205 106 0 0 0 0 88 164 82 31 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 33 171 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 176 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 22 0x10005 0x0 0x1e8189c0 0x14fb 0x1e7748e0 0x69 0x40007 0x1564 0x80 0x0 0x80002 0x0 0xd0007 0x0 0x50 0x0 0x120005 0x0 0x0 0x0 0x0 0x0 oops 2 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1
+ciMethodData javax/swing/text/html/MuxingAttributeSet ()V 2 2270 orig 264 72 34 205 106 0 0 0 0 8 255 82 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 241 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x7de oops 0
+ciMethodData javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 2275 orig 264 72 34 205 106 0 0 0 0 168 120 75 31 0 0 0 0 224 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 25 63 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 5 0 2 0 0 0 144 0 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 18 0x50005 0x0 0x21e87730 0x7e3 0x0 0x0 0xc0005 0x0 0x1e76f040 0x7e3 0x0 0x0 0x120005 0x0 0x22045690 0x7e3 0x0 0x0 oops 3 2 javax/swing/text/html/CSS 8 javax/swing/text/html/StyleSheet 14 javax/swing/text/StyleContext$NamedStyle
+ciMethodData javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 2 2408 orig 264 72 34 205 106 0 0 0 0 56 7 76 31 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 67 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 176 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 22 0x40005 0x0 0x200808e0 0x518 0x1e774af0 0x350 0xb0004 0x0 0x1e771980 0x868 0x0 0x0 0xe0007 0x0 0x50 0x868 0x120004 0x0 0x1e771980 0x868 0x0 0x0 oops 4 2 javax/swing/text/html/HTMLDocument$BlockElement 4 javax/swing/text/html/HTMLDocument$RunElement 8 javax/swing/text/html/HTML$Tag 18 javax/swing/text/html/HTML$Tag
+ciMethodData javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 2 2408 orig 264 72 34 205 106 0 0 0 0 32 243 75 31 0 0 0 0 24 7 0 0 48 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 65 67 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 72 0 2 0 0 0 200 5 0 0 255 255 255 255 2 0 4 0 0 0 0 0 data 185 0x40002 0x868 0x90004 0x0 0x200808e0 0x518 0x1e774af0 0x350 0xf0002 0x868 0x190007 0x9c 0x40 0x7cc 0x210007 0x7cc 0x2c8 0x0 0x250005 0x0 0x200808e0 0x9c 0x0 0x0 0x2a0005 0x0 0x200808e0 0x9c 0x0 0x0 0x2f0005 0x0 0x200808e0 0x9c 0x0 0x0 0x380002 0x9c 0x3f0007 0x9c 0x30 0x0 0x490002 0x0 0x510005 0x0 0x200808e0 0x9c 0x0 0x0 0x560004 0x0 0x26eda90 0x9c 0x0 0x0 0x5d0007 0x0 0x178 0x9c 0x660005 0x0 0x21e87730 0x9c 0x0 0x0 0x690004 0x0 0x198378c0 0x9c 0x0 0x0 0x770007 0x9c 0x38 0x0 0x7b0003 0x0 0x18 0x8c0005 0x0 0x19833e50 0x9c 0x0 0x0 0x970005 0x0 0x19833e50 0x9c 0x0 0x0 0xa20005 0x0 0x19833e50 0x9c 0x0 0x0 0xad0005 0x0 0x19833e50 0x9c 0x0 0x0 0xb30005 0x0 0x200808e0 0x518 0x1e774af0 0x350 0xb80007 0x518 0x48 0x350 0xbe0002 0x350 0xc10003 0x350 0x28 0xc90002 0x518 0xd10007 0x868 0x208 0x0 0xd80005 0x0 0x0 0x0 0x0 0x0 0xe10007 0x0 0x138 0x0 0xe80005 0x0 0x0 0x0 0x0 0x0 0xeb0007 0x0 0x70 0x0 0xf20005 0x0 0x0 0x0 0x0 0x0 0xf50007 0x0 0x98 0x0 0xfe0005 0x0 0x0 0x0 0x0 0x0 0x1070005 0x0 0x0 0x0 0x0 0x0 0x10c0003 0x0 0x98 0x1130005 0x0 0x0 0x0 0x0 0x0 0x11c0007 0x0 0x50 0x0 0x1250005 0x0 0x0 0x0 0x0 0x0 oops 15 4 javax/swing/text/html/HTMLDocument$BlockElement 6 javax/swing/text/html/HTMLDocument$RunElement 20 javax/swing/text/html/HTMLDocument$BlockElement 26 javax/swing/text/html/HTMLDocument$BlockElement 32 javax/swing/text/html/HTMLDocument$BlockElement 46 javax/swing/text/html/HTMLDocument$BlockElement 52 java/lang/String 62 javax/swing/text/html/CSS 68 javax/swing/text/html/CSS$LengthValue 81 javax/swing/text/SimpleAttributeSet 87 javax/swing/text/SimpleAttributeSet 93 javax/swing/text/SimpleAttributeSet 99 javax/swing/text/SimpleAttributeSet 105 javax/swing/text/html/HTMLDocument$BlockElement 107 javax/swing/text/html/HTMLDocument$RunElement
+ciMethodData javax/swing/text/html/CSS getTableBorder (Ljavax/swing/text/AttributeSet;)I 1 234 orig 264 72 34 205 106 0 0 0 0 232 243 75 31 0 0 0 0 40 2 0 0 176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81 7 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 224 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 28 0x40005 0x0 0x200808e0 0xea 0x0 0x0 0x90004 0x0 0x26eda90 0xea 0x0 0x0 0x100007 0x0 0x70 0xea 0x160005 0xea 0x0 0x0 0x0 0x0 0x190007 0xea 0x20 0x0 0x1f0002 0xea oops 2 2 javax/swing/text/html/HTMLDocument$BlockElement 8 java/lang/String
+ciMethodData javax/swing/text/html/CSS translateAttribute (Ljavax/swing/text/html/HTML$Attribute;Ljava/lang/String;Ljavax/swing/text/MutableAttributeSet;)V 1 353 orig 264 72 34 205 106 0 0 0 0 176 4 76 31 0 0 0 0 104 2 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 121 10 0 0 121 10 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 14 0 2 0 0 0 8 1 0 0 255 255 255 255 2 0 2 0 0 0 0 0 data 33 0x20002 0x14f 0x90007 0x0 0x40 0x14f 0xd0007 0x14f 0x20 0x0 0x210007 0x14f 0xb8 0x14f 0x2f0005 0x0 0x21e87730 0x14f 0x0 0x0 0x360007 0x0 0x50 0x14f 0x3e0005 0x0 0x19833e50 0x14f 0x0 0x0 0x460003 0x14f 0xffffffffffffff60 oops 2 16 javax/swing/text/html/CSS 26 javax/swing/text/SimpleAttributeSet
+ciMethodData javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 1 973 orig 264 72 34 205 106 0 0 0 0 152 234 75 31 0 0 0 0 128 2 0 0 176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 169 22 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 6 0 2 0 0 0 40 1 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 37 0x50005 0x0 0x26eee60 0x2d5 0x0 0x0 0x80004 0x0 0x20603b60 0x7c 0x20603c10 0x7c 0xe0005 0x1dd 0x20603b60 0x7c 0x20603c10 0x7c 0x150007 0x0 0x38 0x2d5 0x1a0003 0x2d5 0x78 0x1f0005 0x0 0x0 0x0 0x0 0x0 0x220005 0x0 0x0 0x0 0x0 0x0 oops 5 2 java/util/Hashtable 8 javax/swing/text/html/CSS$FontFamily 10 javax/swing/text/html/CSS$FontSize 14 javax/swing/text/html/CSS$FontFamily 16 javax/swing/text/html/CSS$FontSize
+ciMethodData javax/swing/text/html/CSS translateEmbeddedAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 2 3464 orig 264 72 34 205 106 0 0 0 0 64 2 76 31 0 0 0 0 168 4 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 1 0 0 153 26 0 0 129 99 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 18 0 2 0 0 0 80 3 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 106 0x10005 0x0 0x1e774af0 0x353 0x0 0x0 0xb0005 0x0 0x1e774af0 0x353 0x0 0x0 0x130007 0x353 0x30 0x0 0x1c0002 0x0 0x200005 0x0 0x22045740 0xfc3 0x0 0x0 0x250007 0x353 0x290 0xc70 0x290005 0x0 0x22045740 0xc70 0x0 0x0 0x320004 0xfffffffffffff3c3 0x26eda90 0x30 0x21bc90b0 0xf0 0x350007 0xc3d 0x148 0x33 0x3a0004 0x0 0x1e771980 0x33 0x0 0x0 0x420005 0x0 0x1e774af0 0x33 0x0 0x0 0x4b0007 0x0 0xb0 0x33 0x500004 0x0 0x19833e50 0x33 0x0 0x0 0x530007 0x0 0x60 0x33 0x5b0004 0x0 0x19833e50 0x33 0x0 0x0 0x5f0002 0x33 0x620003 0x33 0xc8 0x670004 0xfffffffffffff3f6 0x26eda90 0x30 0x21bc90b0 0xf0 0x6a0007 0xc0a 0x80 0x33 0x730005 0x0 0x1e774af0 0x33 0x0 0x0 0x780005 0x0 0x19833e50 0x33 0x0 0x0 0x7d0003 0xc70 0xfffffffffffffd58 oops 14 2 javax/swing/text/html/HTMLDocument$RunElement 8 javax/swing/text/html/HTMLDocument$RunElement 20 javax/swing/text/StyleContext$KeyEnumeration 30 javax/swing/text/StyleContext$KeyEnumeration 36 java/lang/String 38 javax/swing/text/StyleConstants 46 javax/swing/text/html/HTML$Tag 52 javax/swing/text/html/HTMLDocument$RunElement 62 javax/swing/text/SimpleAttributeSet 72 javax/swing/text/SimpleAttributeSet 83 java/lang/String 85 javax/swing/text/StyleConstants 93 javax/swing/text/html/HTMLDocument$RunElement 99 javax/swing/text/SimpleAttributeSet
+ciMethodData javax/swing/text/html/CSS translateAttributes (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 2 2456 orig 264 72 34 205 106 0 0 0 0 200 3 76 31 0 0 0 0 88 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 0 0 0 201 42 0 0 41 69 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 43 0 2 0 0 0 248 4 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 159 0x10005 0x0 0x200808e0 0x526 0x19833e50 0x33 0xa0005 0x0 0x22045740 0xdc0 0x205f8b00 0x3e 0xf0007 0x559 0x498 0x8a5 0x140005 0x0 0x22045740 0x89a 0x205f8b00 0xb 0x1d0004 0xfffffffffffff946 0x21bc90b0 0x85 0x198367a0 0x4 0x200007 0x6ba 0x350 0x1eb 0x250004 0x0 0x2185e270 0x1eb 0x0 0x0 0x2f0007 0x19d 0x168 0x4e 0x360005 0x0 0x200808e0 0x4e 0x0 0x0 0x3b0004 0x0 0x26eda90 0x4e 0x0 0x0 0x420007 0x0 0xd0 0x4e 0x480002 0x4e 0x4f0007 0x0 0xa0 0x4e 0x570005 0x0 0x21e87730 0x4e 0x0 0x0 0x5e0007 0x0 0x50 0x4e 0x660005 0x0 0x19833e50 0x4e 0x0 0x0 0x6b0003 0x4e 0x198 0x730007 0x19d 0x68 0x0 0x780002 0x0 0x7b0007 0x0 0x38 0x0 0x7e0003 0x0 0x130 0x850007 0x4f 0xa8 0x14e 0x8d0007 0x100 0x88 0x4e 0x910002 0x4e 0x980007 0x4e 0x40 0x0 0xa10002 0x0 0xa50002 0x0 0xa80003 0x4e 0x88 0xb10005 0x0 0x200808e0 0x144 0x19833e50 0xb 0xb60004 0x0 0x26eda90 0x14f 0x0 0x0 0xba0002 0x14f 0xbd0003 0x1eb 0xc8 0xc20004 0xfffffffffffffac2 0x21bc90b0 0x85 0x198367a0 0x17c 0xc50007 0x53e 0x80 0x17c 0xce0005 0x0 0x200808e0 0x17c 0x0 0x0 0xd30005 0x0 0x19833e50 0x17c 0x0 0x0 0xd80003 0x8a5 0xfffffffffffffb50 oops 20 2 javax/swing/text/html/HTMLDocument$BlockElement 4 javax/swing/text/SimpleAttributeSet 8 javax/swing/text/StyleContext$KeyEnumeration 10 java/util/Collections$3 18 javax/swing/text/StyleContext$KeyEnumeration 20 java/util/Collections$3 24 javax/swing/text/StyleConstants 26 javax/swing/text/html/CSS$Attribute 34 javax/swing/text/html/HTML$Attribute 44 javax/swing/text/html/HTMLDocument$BlockElement 50 java/lang/String 66 javax/swing/text/html/CSS 76 javax/swing/text/SimpleAttributeSet 119 javax/swing/text/html/HTMLDocument$BlockElement 121 javax/swing/text/SimpleAttributeSet 125 java/lang/String 136 javax/swing/text/StyleConstants 138 javax/swing/text/html/CSS$Attribute 146 javax/swing/text/html/HTMLDocument$BlockElement 152 javax/swing/text/SimpleAttributeSet
+ciMethodData javax/swing/text/StyleContext$NamedStyle getAttributeCount ()I 2 2325 orig 264 72 34 205 106 0 0 0 0 16 216 173 29 0 0 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 1 0 0 129 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 48 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 6 0x40005 0x0 0x20af6f30 0x7d0 0x0 0x0 oops 1 2 javax/swing/text/html/StyleSheet$SmallConversionSet
+ciMethodData javax/swing/text/html/StyleSheet getRule (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/Element;)Ljavax/swing/text/Style; 2 7904 orig 264 72 34 205 106 0 0 0 0 216 108 75 31 0 0 0 0 112 10 0 0 136 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 2 0 0 1 43 0 0 49 223 0 0 0 0 0 0 0 0 0 0 2 0 0 0 2 0 132 0 2 0 0 0 24 9 0 0 255 255 255 255 2 0 0 0 0 0 0 0 data 291 0x2 0x560 0x50005 0x0 0x21bc4ff0 0x560 0x0 0x0 0xf0007 0x560 0x98 0x10a3 0x160005 0x0 0x21bc53a0 0x10a3 0x0 0x0 0x1b0005 0x0 0x200808e0 0x1070 0x1e774af0 0x33 0x220003 0x10a3 0xffffffffffffff80 0x270005 0x0 0x21bc53a0 0x560 0x0 0x0 0x2d0005 0x0 0x21bc4ff0 0x560 0x0 0x0 0x3b0007 0x560 0x380 0xb43 0x420005 0x0 0x21bc53a0 0xb43 0x0 0x0 0x450004 0x0 0x200808e0 0xb43 0x0 0x0 0x4a0005 0x0 0x200808e0 0xb43 0x0 0x0 0x560005 0x0 0x200808e0 0xb43 0x0 0x0 0x5f0005 0x0 0x1e771980 0xb43 0x0 0x0 0x680005 0x8e 0x17482200 0xab5 0x0 0x0 0x6e0007 0x0 0x1f8 0xb43 0x760005 0x0 0x200808e0 0xb43 0x0 0x0 0x7b0007 0xb43 0xc8 0x0 0x820005 0x0 0x0 0x0 0x0 0x0 0x8d0005 0x0 0x0 0x0 0x0 0x0 0x920005 0x0 0x0 0x0 0x0 0x0 0x960003 0x0 0xf8 0x9e0005 0x0 0x200808e0 0xb43 0x0 0x0 0xa30007 0xb43 0xb0 0x0 0xaa0005 0x0 0x0 0x0 0x0 0x0 0xb50005 0x0 0x0 0x0 0x0 0x0 0xba0005 0x0 0x0 0x0 0x0 0x0 0xc20005 0x8e 0x17482200 0xab5 0x0 0x0 0xc90003 0xb43 0xfffffffffffffc98 0xcf0005 0x0 0x1e771980 0x560 0x0 0x0 0xd20005 0x8e 0x17482200 0x4d2 0x0 0x0 0xd90005 0x0 0x21bc53a0 0x560 0x0 0x0 0xdc0004 0x0 0x200808e0 0x52d 0x1e774af0 0x33 0xe10005 0x0 0x200808e0 0x52d 0x1e774af0 0x33 0xe90005 0x0 0x200808e0 0x52d 0x1e774af0 0x33 0xee0007 0x52d 0xe8 0x33 0xf40005 0x0 0x1e774af0 0x33 0x0 0x0 0xfd0004 0x0 0x19833e50 0x33 0x0 0x0 0x1000007 0x0 0x68 0x33 0x1050004 0x0 0x19833e50 0x33 0x0 0x0 0x10a0003 0x33 0x18 0x1120007 0x0 0x1f8 0x560 0x11a0005 0x0 0x200808e0 0x52d 0x19833e50 0x33 0x11f0007 0x560 0xc8 0x0 0x1260005 0x0 0x0 0x0 0x0 0x0 0x1310005 0x0 0x0 0x0 0x0 0x0 0x1360005 0x0 0x0 0x0 0x0 0x0 0x13a0003 0x0 0xf8 0x1420005 0x0 0x200808e0 0x52d 0x19833e50 0x33 0x1470007 0x560 0xb0 0x0 0x14e0005 0x0 0x0 0x0 0x0 0x0 0x1590005 0x0 0x0 0x0 0x0 0x0 0x15e0005 0x0 0x0 0x0 0x0 0x0 0x1650005 0x8e 0x17482200 0x4d2 0x0 0x0 0x16b0002 0x560 0x1750002 0x560 0x17e0002 0x0 oops 32 4 javax/swing/text/html/StyleSheet$SearchBuffer 14 java/util/Vector 20 javax/swing/text/html/HTMLDocument$BlockElement 22 javax/swing/text/html/HTMLDocument$RunElement 29 java/util/Vector 35 javax/swing/text/html/StyleSheet$SearchBuffer 45 java/util/Vector 51 javax/swing/text/html/HTMLDocument$BlockElement 57 javax/swing/text/html/HTMLDocument$BlockElement 63 javax/swing/text/html/HTMLDocument$BlockElement 69 javax/swing/text/html/HTML$Tag 75 java/lang/StringBuffer 85 javax/swing/text/html/HTMLDocument$BlockElement 116 javax/swing/text/html/HTMLDocument$BlockElement 144 java/lang/StringBuffer 153 javax/swing/text/html/HTML$Tag 159 java/lang/StringBuffer 165 java/util/Vector 171 javax/swing/text/html/HTMLDocument$BlockElement 173 javax/swing/text/html/HTMLDocument$RunElement 177 javax/swing/text/html/HTMLDocument$BlockElement 179 javax/swing/text/html/HTMLDocument$RunElement 183 javax/swing/text/html/HTMLDocument$BlockElement 185 javax/swing/text/html/HTMLDocument$RunElement 193 javax/swing/text/html/HTMLDocument$RunElement 199 javax/swing/text/SimpleAttributeSet 209 javax/swing/text/SimpleAttributeSet 222 javax/swing/text/html/HTMLDocument$BlockElement 224 javax/swing/text/SimpleAttributeSet 253 javax/swing/text/html/HTMLDocument$BlockElement 255 javax/swing/text/SimpleAttributeSet 281 java/lang/StringBuffer
+ciMethodData javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 2 2332 orig 264 72 34 205 106 0 0 0 0 160 255 82 31 0 0 0 0 40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 1 0 0 185 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData javax/swing/text/html/ImageView getIntAttr (Ljavax/swing/text/html/HTML$Attribute;I)I 2 2242 orig 264 72 34 205 106 0 0 0 0 8 166 82 31 0 0 0 0 216 2 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 17 62 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 14 0 2 0 0 0 128 1 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 48 0x10005 0x0 0x1e8189c0 0x79a 0x1e7748e0 0x28 0x40005 0x0 0x1e774af0 0x7c2 0x0 0x0 0xc0005 0x0 0x1e774af0 0x7c2 0x0 0x0 0x110007 0x5e2 0xf0 0x1e0 0x160005 0x0 0x1e774af0 0x1e0 0x0 0x0 0x1b0004 0x0 0x26eda90 0x1e0 0x0 0x0 0x220007 0x1e0 0x38 0x0 0x280003 0x0 0x50 0x2e0002 0x1e0 0x310002 0x1e0 0x360003 0x1e0 0x18 oops 6 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 8 javax/swing/text/html/HTMLDocument$RunElement 14 javax/swing/text/html/HTMLDocument$RunElement 24 javax/swing/text/html/HTMLDocument$RunElement 30 java/lang/String
+ciMethodData javax/swing/text/html/CSS getCssAlignAttribute (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/CSS$Attribute; 1 78 orig 264 72 34 205 106 0 0 0 0 136 6 76 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 113 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 data 0 oops 0
+ciMethodData javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 1 562 orig 264 72 34 205 106 0 0 0 0 88 5 76 31 0 0 0 0 232 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53 0 0 0 233 15 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 255 255 255 255 5 0 5 0 0 0 0 0 data 18 0x50005 0x0 0x26eee60 0x1fd 0x0 0x0 0x80004 0x0 0x198378c0 0xfc 0x21bd17e0 0xa8 0xe0005 0x59 0x198378c0 0xfc 0x21bd17e0 0xa8 oops 5 2 java/util/Hashtable 8 javax/swing/text/html/CSS$LengthValue 10 javax/swing/text/html/CSS$StringValue 14 javax/swing/text/html/CSS$LengthValue 16 javax/swing/text/html/CSS$StringValue
+ciMethodData javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 1 526 orig 264 72 34 205 106 0 0 0 0 104 148 82 31 0 0 0 0 216 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 1 0 0 17 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 18 0x10005 0x0 0x1e8189c0 0xf8 0x1e7748e0 0xa 0x40004 0x0 0x1e774990 0xf8 0x1e774a40 0xa 0x90005 0x0 0x1e774990 0xf8 0x1e774a40 0xa oops 6 2 javax/swing/text/html/ImageView 4 org/mage/card/arcane/UI$1$1$1 8 javax/swing/plaf/basic/BasicHTML$BasicDocument 10 javax/swing/text/html/HTMLDocument 14 javax/swing/plaf/basic/BasicHTML$BasicDocument 16 javax/swing/text/html/HTMLDocument
+ciMethodData javax/swing/text/html/ImageView isLink ()Z 1 556 orig 264 72 34 205 106 0 0 0 0 240 162 82 31 0 0 0 0 88 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 1 0 0 1 9 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 255 255 255 255 7 0 7 0 0 0 0 0 data 7 0x70007 0x120 0x38 0x0 0xb0003 0x0 0x18 oops 0
+ciMethodData javax/swing/text/html/ImageView getAttributes ()Ljavax/swing/text/AttributeSet; 1 556 orig 264 72 34 205 106 0 0 0 0 0 149 82 31 0 0 0 0 48 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 1 0 0 1 9 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 255 255 255 255 2 0 1 0 0 0 0 0 data 2 0x10002 0x120 oops 0
+ciMethodData javax/swing/text/html/CSS getCssAttribute (Ljavax/swing/text/html/HTML$Attribute;)[Ljavax/swing/text/html/CSS$Attribute; 1 353 orig 264 72 34 205 106 0 0 0 0 240 5 76 31 0 0 0 0 176 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 3 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 3 0 2 0 0 0 96 0 0 0 255 255 255 255 5 0 4 0 0 0 0 0 data 12 0x40005 0x0 0x26eee60 0x60 0x0 0x0 0x70004 0x0 0x198dedd0 0x60 0x0 0x0 oops 2 2 java/util/Hashtable 8 [Ljavax/swing/text/html/CSS$Attribute;
+ciMethodData javax/swing/text/html/ImageView loadImage ()V 1 272 orig 264 72 34 205 106 0 0 0 0 64 169 82 31 0 0 0 0 176 3 0 0 120 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 129 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 26 0 2 0 0 0 104 2 0 0 255 255 255 255 5 0 1 0 0 0 0 0 data 77 0x10005 0x0 0x1e8189c0 0x10 0x0 0x0 0x80007 0x0 0x238 0x10 0xc0005 0x0 0x1e8189c0 0x10 0x0 0x0 0x110005 0x0 0x1e774990 0x10 0x0 0x0 0x160104 0x0 0x0 0x0 0x0 0x0 0x1b0007 0x10 0x98 0x0 0x200005 0x0 0x0 0x0 0x0 0x0 0x230004 0x0 0x0 0x0 0x0 0x0 0x270003 0x0 0x108 0x2a0002 0x10 0x2e0005 0x0 0x1f2acb50 0x10 0x0 0x0 0x330007 0x0 0xb0 0x10 0x370005 0x0 0x1e8189c0 0x10 0x0 0x0 0x3a0007 0x0 0x60 0x10 0x410002 0x10 0x490005 0x0 0x2002f9c0 0x10 0x0 0x0 oops 6 2 javax/swing/text/html/ImageView 12 javax/swing/text/html/ImageView 18 javax/swing/plaf/basic/BasicHTML$BasicDocument 51 sun/awt/windows/WToolkit 61 javax/swing/text/html/ImageView 73 javax/swing/ImageIcon
+ciMethodData javax/swing/text/html/ImageView updateImageSize ()V 1 272 orig 264 72 34 205 106 0 0 0 0 56 171 82 31 0 0 0 0 88 5 0 0 232 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 68 79 32 101 120 116 114 97 32 100 97 116 97 32 108 111 99 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 129 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 62 0 2 0 0 0 16 4 0 0 255 255 255 255 5 0 7 0 0 0 0 0 data 130 0x70005 0x0 0x1e8189c0 0x10 0x0 0x0 0xe0007 0x0 0x3d0 0x10 0x120005 0x0 0x1e8189c0 0x10 0x0 0x0 0x190005 0x0 0x1e774af0 0x10 0x0 0x0 0x250002 0x10 0x2a0007 0x0 0x20 0x10 0x360002 0x10 0x3b0007 0x0 0x20 0x10 0x440007 0x10 0x70 0x0 0x4d0005 0x0 0x0 0x0 0x0 0x0 0x520007 0x0 0x20 0x0 0x590007 0x10 0x70 0x0 0x620005 0x0 0x0 0x0 0x0 0x0 0x670007 0x0 0x20 0x0 0x710007 0x0 0x78 0x10 0x740002 0x10 0x7f0005 0x0 0x1f2acb50 0x10 0x0 0x0 0x830003 0x10 0x58 0x860002 0x0 0x910005 0x0 0x0 0x0 0x0 0x0 0xa10007 0x0 0xb8 0x10 0xa80007 0x10 0x40 0x0 0xaf0007 0x0 0x20 0x0 0xbd0007 0x10 0x40 0x0 0xc40007 0x0 0x78 0x0 0xcc0003 0x10 0x58 0xd60007 0x0 0x20 0x0 0xe40007 0x0 0x20 0x0 0x1050003 0x10 0x18 0x1120007 0x10 0x30 0x0 0x1160002 0x0 0x1190003 0x10 0x28 0x1280002 0x0 oops 4 2 javax/swing/text/html/ImageView 12 javax/swing/text/html/ImageView 18 javax/swing/text/html/HTMLDocument$RunElement 70 sun/awt/windows/WToolkit
+instanceKlass org/jdesktop/swingx/graphics/ShadowRenderer
+instanceKlass sun/awt/EventQueueDelegate$Delegate
+instanceKlass mage/client/plugins/adapters/MageActionCallback$$Lambda$253
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass mage/client/plugins/adapters/MageActionCallback$1$$Lambda$252
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/mage/plugins/card/info/CardInfoPaneImpl$$Lambda$251
+instanceKlass javax/swing/text/html/TableView$ColumnIterator
+instanceKlass javax/swing/text/html/TableView$RowIterator
+instanceKlass javax/swing/text/html/CSS$LayoutIterator
+instanceKlass mage/client/util/gui/GuiDisplayUtil$1
+instanceKlass mage/client/util/gui/GuiDisplayUtil$TextLines
+instanceKlass mage/client/util/gui/GuiDisplayUtil
+instanceKlass mage/client/plugins/adapters/MageActionCallback$1
+instanceKlass mage/client/util/gui/ArrowUtil
+instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$2
+instanceKlass javax/swing/Popup
+instanceKlass sun/awt/ModalExclude
+instanceKlass javax/swing/PopupFactory
+instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber$1
+instanceKlass sun/font/GraphicComponent
+instanceKlass org/mage/card/arcane/ModernCardRenderer$RuleLayout
+instanceKlass java/awt/TexturePaintContext
+instanceKlass org/mage/card/arcane/CardPanelAttributes
+instanceKlass org/mage/card/arcane/CardPanelRenderImpl$$Lambda$250
+instanceKlass java/awt/font/TextLayout$CaretPolicy
+instanceKlass java/awt/font/TextLayout
+instanceKlass java/awt/font/TextLine$TextLineMetrics
+instanceKlass sun/font/DelegatingShape
+instanceKlass sun/font/GlyphLayout$LayoutEngineKey
+instanceKlass sun/font/GlyphLayout$EngineRecord
+instanceKlass sun/font/ScriptRunData
+instanceKlass sun/font/GlyphLayout$SDCache$SDKey
+instanceKlass sun/font/GlyphLayout$SDCache
+instanceKlass sun/font/FontRunIterator
+instanceKlass sun/font/ScriptRun
+instanceKlass sun/font/TextRecord
+instanceKlass sun/font/GlyphLayout$GVData
+instanceKlass sun/font/SunLayoutEngine
+instanceKlass sun/font/GlyphLayout$LayoutEngineFactory
+instanceKlass sun/font/GlyphLayout$LayoutEngine
+instanceKlass sun/font/GlyphLayout
+instanceKlass sun/font/TextLabel
+instanceKlass sun/font/Decoration$Label
+instanceKlass sun/font/TextSource
+instanceKlass java/awt/font/GraphicAttribute
+instanceKlass sun/font/TextLineComponent
+instanceKlass sun/font/TextLabelFactory
+instanceKlass java/awt/font/CharArrayIterator
+instanceKlass java/awt/font/LineMetrics
+instanceKlass sun/font/CoreMetrics
+instanceKlass java/awt/font/TextLine$Function
+instanceKlass java/awt/font/TextLine
+instanceKlass java/text/AttributeEntry
+instanceKlass java/text/Annotation
+instanceKlass sun/font/Decoration
+instanceKlass java/awt/font/StyledParagraph
+instanceKlass sun/text/normalizer/UTF16
+instanceKlass sun/text/bidi/BidiBase$TextAttributeConstants
+instanceKlass sun/text/normalizer/CharTrie$FriendAgent
+instanceKlass sun/text/normalizer/Trie$DefaultGetFoldingOffset
+instanceKlass sun/text/normalizer/Trie$DataManipulate
+instanceKlass sun/text/normalizer/Trie
+instanceKlass sun/text/normalizer/ICUBinary
+instanceKlass sun/text/normalizer/UBiDiProps$IsAcceptable
+instanceKlass sun/text/normalizer/ICUBinary$Authenticate
+instanceKlass sun/text/normalizer/ICUData
+instanceKlass sun/text/normalizer/UBiDiProps
+instanceKlass sun/text/bidi/BidiBase$Point
+instanceKlass sun/text/bidi/BidiBase$InsertPoints
+instanceKlass sun/text/bidi/BidiRun
+instanceKlass sun/text/bidi/BidiBase$ImpTabPair
+instanceKlass sun/text/bidi/BidiBase
+instanceKlass java/text/Bidi
+instanceKlass java/awt/font/TextMeasurer
+instanceKlass java/text/BreakIterator$BreakIteratorCache
+instanceKlass sun/text/SupplementaryCharacterData
+instanceKlass sun/text/CompactByteArray
+instanceKlass sun/util/locale/provider/RuleBasedBreakIterator$1
+instanceKlass java/awt/font/LineBreakMeasurer
+instanceKlass org/jdesktop/swingx/graphics/GraphicsUtilities
+instanceKlass sun/font/AttributeValues$1
+instanceKlass org/mage/card/arcane/TextboxRule$ItalicRegion
+instanceKlass org/mage/card/arcane/TextboxRule$EmbeddedSymbol
+instanceKlass org/mage/card/arcane/TextboxRule$AttributeRegion
+instanceKlass net/java/truevfs/kernel/impl/FinalizeController$
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/mage/card/arcane/CardPanelRenderImpl$$Lambda$247
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass com/google/common/collect/MapMaker$NullOutputExceptionReference
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter
+instanceKlass mage/client/deckeditor/collection/viewer/MageBook$CardPosition
+instanceKlass org/mage/card/arcane/GlowText$$Lambda$246
+instanceKlass org/mage/card/arcane/GlowText$Key
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/mage/card/arcane/CardPanelRenderImpl$$Lambda$245
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass org/mage/card/arcane/Util$1
+instanceKlass org/mage/card/arcane/Util
+instanceKlass org/mage/card/arcane/ModernSplitCardRenderer$$Lambda$244
+instanceKlass java/util/stream/MatchOps$$Lambda$243
+instanceKlass java/util/stream/MatchOps$BooleanTerminalSink
+instanceKlass java/util/stream/Sink
+instanceKlass java/util/stream/MatchOps$MatchOp
+instanceKlass java/util/stream/TerminalOp
+instanceKlass java/util/stream/MatchOps
+instanceKlass org/mage/card/arcane/ModernSplitCardRenderer$$Lambda$242
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/stream/StreamOpFlag$MaskBuilder
+instanceKlass java/util/stream/PipelineHelper
+instanceKlass java/util/stream/StreamSupport
+instanceKlass java/util/ArrayList$ArrayListSpliterator
+instanceKlass org/mage/card/arcane/TextboxRule
+instanceKlass org/mage/card/arcane/TextboxRuleParser
+instanceKlass org/mage/card/arcane/ModernSplitCardRenderer$HalfCardProps
+instanceKlass java/awt/TexturePaint
+instanceKlass org/mage/card/arcane/CardRendererUtils
+instanceKlass sun/font/SunFontManager$$Lambda$241
+instanceKlass sun/font/SunFontManager$8
+instanceKlass sun/font/FileFont$CreatedFontFileDisposerRecord
+instanceKlass java/awt/Font$2
+instanceKlass sun/nio/fs/WindowsChannelFactory$2
+instanceKlass java/nio/file/TempFileHelper
+instanceKlass java/awt/Font$1
+instanceKlass org/mage/card/arcane/CardRendererFactory
+instanceKlass org/mage/card/arcane/CardPanelRenderImpl$ImageKey
+instanceKlass mage/cards/action/TransferData
+instanceKlass mage/client/util/NaturalOrderComparator
+instanceKlass com/sun/media/sound/EventDispatcher$EventInfo
+instanceKlass mage/client/util/audio/LinePool$$Lambda$240
+instanceKlass javax/sound/sampled/LineListener
+instanceKlass com/sun/media/sound/EventDispatcher
+instanceKlass javax/sound/sampled/LineEvent$Type
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass mage/client/util/audio/LinePool$$Lambda$239
+instanceKlass mage/utils/ThreadUtils$3
+instanceKlass mage/utils/ThreadUtils$2
+instanceKlass mage/utils/ThreadUtils$1
+instanceKlass mage/utils/ThreadUtils
+instanceKlass mage/client/util/audio/AudioManager$1
+instanceKlass org/tritonus/share/TDebug
+instanceKlass javax/sound/sampled/AudioFileFormat
+instanceKlass javazoom/jl/decoder/Header
+instanceKlass javazoom/spi/mpeg/sampled/file/tag/MP3MetadataParser
+instanceKlass javazoom/spi/mpeg/sampled/file/tag/TagParseListener
+instanceKlass javax/sound/sampled/AudioFileFormat$Type
+instanceKlass javax/sound/sampled/spi/FormatConversionProvider
+instanceKlass javax/sound/sampled/spi/AudioFileReader
+instanceKlass mage/client/constants/Constants$IO
+instanceKlass mage/client/constants/Constants
+instanceKlass mage/client/util/audio/MageClip
+instanceKlass javax/sound/sampled/Control$Type
+instanceKlass com/sun/media/sound/EventDispatcher$LineMonitor
+instanceKlass com/sun/media/sound/Toolkit
+instanceKlass javax/sound/sampled/Clip
+instanceKlass javax/sound/sampled/SourceDataLine
+instanceKlass javax/sound/sampled/DataLine
+instanceKlass javax/sound/sampled/Control
+instanceKlass com/sun/media/sound/AbstractLine
+instanceKlass javax/sound/sampled/Mixer
+instanceKlass javax/sound/sampled/Line
+instanceKlass javax/sound/sampled/Mixer$Info
+instanceKlass com/sun/media/sound/Platform$$Lambda$238
+instanceKlass com/sun/media/sound/Platform$$Lambda$237
+instanceKlass com/sun/media/sound/Platform
+instanceKlass com/sun/media/sound/JSSecurityManager$3
+instanceKlass com/sun/media/sound/JSSecurityManager$2
+instanceKlass com/sun/media/sound/JSSecurityManager
+instanceKlass com/sun/media/sound/JDK13Services
+instanceKlass javax/sound/sampled/spi/MixerProvider
+instanceKlass javax/sound/sampled/AudioSystem
+instanceKlass javax/sound/sampled/AudioFormat$Encoding
+instanceKlass javax/sound/sampled/AudioFormat
+instanceKlass javax/sound/sampled/Line$Info
+instanceKlass mage/client/util/audio/LinePool
+instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$236
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass mage/client/deckeditor/collection/viewer/MageBook$$Lambda$235
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass mage/client/deckeditor/collection/viewer/MageBook$$Lambda$234
+instanceKlass mage/client/deckeditor/collection/viewer/MageBook$$Lambda$233
+instanceKlass mage/client/util/Command
+instanceKlass mage/client/deckeditor/collection/viewer/MageBook$Configuration
+instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$232
+instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$231
+instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$230
+instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$229
+instanceKlass mage/client/deckeditor/collection/viewer/CollectionViewerPanel$$Lambda$228
+instanceKlass java/awt/KeyboardFocusManager$4
+instanceKlass net/java/truevfs/kernel/impl/FinalizeController$FinalizeResource$class
+instanceKlass net/java/truevfs/kernel/impl/ResourceAccountant$Account
+instanceKlass scala/collection/convert/Decorators$class
+instanceKlass scala/collection/convert/Decorators$
+instanceKlass scala/collection/convert/Decorators$AsScala
+instanceKlass scala/collection/convert/DecorateAsScala$class
+instanceKlass scala/collection/convert/Decorators
+instanceKlass scala/collection/convert/DecorateAsJava$class
+instanceKlass scala/collection/JavaConverters$
+instanceKlass scala/collection/convert/DecorateAsScala
+instanceKlass scala/collection/convert/DecorateAsJava
+instanceKlass net/java/truevfs/kernel/impl/ResourceAccountant$
+instanceKlass net/java/truevfs/kernel/impl/ResourceController$Resource$class
+instanceKlass scala/reflect/ClassTag$
+instanceKlass net/java/truevfs/kernel/impl/TargetArchiveController$SyncOn
+instanceKlass java/util/EnumMap$EntryIterator$Entry
+instanceKlass java/util/EnumMap$EnumMapIterator
+instanceKlass net/java/truevfs/kernel/impl/ResourceController$Resource
+instanceKlass net/java/truevfs/kernel/impl/FinalizeController$FinalizeResource
+instanceKlass net/java/truevfs/access/TBIO
+instanceKlass net/java/truevfs/kernel/impl/FileSystemArchiveController$MountedFileSystem
+instanceKlass net/java/truecommons/shed/Link$Type$Strong
+instanceKlass net/java/truevfs/kernel/impl/CheckedCloseable$class
+instanceKlass net/java/truevfs/kernel/impl/CheckedCloseable
+instanceKlass net/java/truevfs/comp/zip/ULong
+instanceKlass java/nio/file/attribute/FileTime
+instanceKlass net/java/truecommons/cio/Entry$Entity
+instanceKlass net/java/truevfs/driver/file/FileNode$1
+instanceKlass scala/math/package$
+instanceKlass scala/collection/mutable/LinkedEntry
+instanceKlass scala/collection/convert/Wrappers$IteratorWrapper
+instanceKlass scala/collection/convert/WrapAsScala$
+instanceKlass scala/collection/convert/Wrappers$IterableWrapperTrait
+instanceKlass scala/collection/convert/WrapAsJava$class
+instanceKlass scala/collection/mutable/Set
+instanceKlass scala/collection/mutable/SetLike
+instanceKlass scala/collection/concurrent/Map
+instanceKlass scala/collection/convert/WrapAsScala$class
+instanceKlass scala/collection/JavaConversions$
+instanceKlass scala/collection/convert/WrapAsJava
+instanceKlass scala/collection/convert/WrapAsScala
+instanceKlass net/java/truevfs/kernel/impl/package$
+instanceKlass scala/runtime/ObjectRef
+instanceKlass scala/collection/mutable/ArrayOps$ofRef$
+instanceKlass scala/collection/mutable/ArrayOps$class
+instanceKlass scala/collection/mutable/ArrayLike$class
+instanceKlass scala/collection/IndexedSeqOptimized$class
+instanceKlass scala/collection/mutable/IndexedSeqView
+instanceKlass scala/collection/mutable/IndexedSeqLike$class
+instanceKlass scala/collection/mutable/ArrayOps$ofRef
+instanceKlass net/java/truevfs/kernel/impl/ArchiveFileSystem$EntryTable
+instanceKlass net/java/truevfs/kernel/impl/ArchiveFileSystem
+instanceKlass net/java/truevfs/kernel/impl/ArchiveFileSystem$
+instanceKlass net/java/truevfs/comp/zip/UShort
+instanceKlass net/java/truevfs/comp/zip/ExtraField
+instanceKlass net/java/truecommons/shed/HashMaps
+instanceKlass net/java/truecommons/io/PowerBuffer
+instanceKlass net/java/truecommons/io/AbstractSeekableChannel
+instanceKlass sun/nio/fs/WindowsSecurityDescriptor
+instanceKlass net/java/truevfs/comp/zip/Constants
+instanceKlass net/java/truevfs/comp/zip/PositionMapper
+instanceKlass org/apache/commons/compress/compressors/bzip2/BZip2Constants
+instanceKlass net/java/truevfs/comp/zip/AbstractZipFile
+instanceKlass net/java/truevfs/kernel/spec/FsInputSocketSource
+instanceKlass net/java/truecommons/io/Source
+instanceKlass java/nio/file/FileStore
+instanceKlass sun/nio/fs/WindowsSecurity
+instanceKlass sun/nio/fs/AbstractAclFileAttributeView
+instanceKlass java/nio/file/attribute/AclFileAttributeView
+instanceKlass java/nio/file/attribute/FileOwnerAttributeView
+instanceKlass sun/nio/fs/WindowsLinkSupport
+instanceKlass sun/nio/fs/WindowsFileSystemProvider$1
+instanceKlass net/java/truevfs/driver/file/FileController$1
+instanceKlass net/java/truevfs/kernel/impl/TargetArchiveController$
+instanceKlass sun/nio/fs/WindowsChannelFactory$Flags
+instanceKlass sun/nio/fs/WindowsChannelFactory$1
+instanceKlass sun/nio/fs/WindowsChannelFactory
+instanceKlass sun/nio/fs/WindowsPath$1
+instanceKlass net/java/truevfs/kernel/impl/LockingStrategy$Account
+instanceKlass net/java/truevfs/kernel/impl/LockingStrategy$
+instanceKlass net/java/truevfs/kernel/impl/LockingStrategy
+instanceKlass scala/Function2$class
+instanceKlass scala/runtime/AbstractFunction2
+instanceKlass net/java/truevfs/kernel/impl/FalsePositiveArchiveController$TryChild$
+instanceKlass net/java/truevfs/kernel/impl/FinalizeController$class
+instanceKlass net/java/truecommons/cio/IoBuffer
+instanceKlass net/java/truecommons/cio/IoEntry
+instanceKlass net/java/truecommons/shed/Releasable
+instanceKlass net/java/truecommons/shed/Pool
+instanceKlass net/java/truevfs/kernel/spec/sl/IoBufferPoolLocator$Lazy
+instanceKlass net/java/truevfs/kernel/spec/sl/IoBufferPoolLocator
+instanceKlass net/java/truevfs/kernel/impl/LockController$class
+instanceKlass net/java/truevfs/kernel/impl/SyncController$class
+instanceKlass net/java/truevfs/kernel/impl/CacheController$class
+instanceKlass net/java/truevfs/kernel/impl/LockAspect$class
+instanceKlass net/java/truevfs/kernel/impl/ResourceAccountant
+instanceKlass net/java/truevfs/kernel/impl/LockAspect
+instanceKlass net/java/truecommons/shed/ExceptionHandler
+instanceKlass net/java/truevfs/kernel/impl/ResourceController$class
+instanceKlass net/java/truevfs/kernel/impl/ArchiveModelAspect$class
+instanceKlass net/java/truevfs/kernel/impl/FileSystemArchiveController$ResetFileSystem
+instanceKlass net/java/truevfs/kernel/impl/ArchiveController$class
+instanceKlass net/java/truevfs/kernel/impl/BasicArchiveController
+instanceKlass net/java/truevfs/kernel/impl/MountState
+instanceKlass net/java/truevfs/kernel/impl/ArchiveModelAspect
+instanceKlass net/java/truevfs/kernel/impl/LockController
+instanceKlass net/java/truevfs/kernel/impl/SyncController
+instanceKlass net/java/truevfs/kernel/impl/CacheController
+instanceKlass net/java/truevfs/kernel/impl/ResourceController
+instanceKlass net/java/truevfs/kernel/impl/FinalizeController
+instanceKlass net/java/truecommons/cio/InputSocket
+instanceKlass net/java/truecommons/cio/OutputSocket
+instanceKlass net/java/truecommons/cio/IoSocket
+instanceKlass net/java/truevfs/kernel/impl/FalsePositiveArchiveController$State
+instanceKlass scala/Product2$class
+instanceKlass scala/Product2$mcJD$sp
+instanceKlass scala/Product2$mcJI$sp
+instanceKlass scala/Product2$mcJJ$sp
+instanceKlass scala/Product2$mcDI$sp
+instanceKlass scala/Product2$mcDD$sp
+instanceKlass scala/Product2$mcDJ$sp
+instanceKlass scala/Product2$mcIJ$sp
+instanceKlass scala/Product2$mcII$sp
+instanceKlass scala/Product2$mcID$sp
+instanceKlass scala/Tuple2
+instanceKlass scala/Product2
+instanceKlass net/java/truecommons/shed/Link
+instanceKlass scala/Predef$ArrowAssoc$
+instanceKlass sun/nio/fs/WindowsUriSupport
+instanceKlass net/java/truevfs/kernel/spec/FsNode
+instanceKlass scala/Predef$$anon$3
+instanceKlass scala/reflect/NoManifest$
+instanceKlass scala/reflect/ManifestFactory$ClassTypeManifest
+instanceKlass scala/runtime/Null$
+instanceKlass scala/reflect/Manifest$class
+instanceKlass scala/reflect/ClassTag$class
+instanceKlass scala/reflect/ClassManifestDeprecatedApis$class
+instanceKlass scala/collection/mutable/ArrayBuilder
+instanceKlass scala/reflect/AnyValManifest
+instanceKlass scala/reflect/Manifest
+instanceKlass scala/reflect/ManifestFactory$
+instanceKlass scala/reflect/ClassTag
+instanceKlass scala/reflect/ClassManifestDeprecatedApis
+instanceKlass scala/reflect/OptManifest
+instanceKlass scala/reflect/ClassManifestFactory$
+instanceKlass scala/reflect/package$
+instanceKlass scala/collection/immutable/Set
+instanceKlass scala/collection/immutable/Map
+instanceKlass scala/collection/immutable/MapLike
+instanceKlass scala/util/Right$
+instanceKlass scala/util/Left$
+instanceKlass scala/util/Either$
+instanceKlass scala/math/LowPriorityOrderingImplicits$class
+instanceKlass scala/math/Ordering$
+instanceKlass scala/math/LowPriorityOrderingImplicits
+instanceKlass scala/math/Ordered
+instanceKlass scala/math/Ordered$
+instanceKlass scala/math/Numeric$
+instanceKlass scala/math/Integral$
+instanceKlass scala/math/Fractional$
+instanceKlass scala/math/LowPriorityEquiv$class
+instanceKlass scala/math/Equiv$
+instanceKlass scala/math/LowPriorityEquiv
+instanceKlass scala/math/ScalaNumericConversions
+instanceKlass scala/math/ScalaNumericAnyConversions
+instanceKlass scala/math/BigInt$
+instanceKlass java/math/MathContext
+instanceKlass scala/math/BigDecimal$
+instanceKlass scala/collection/immutable/Range$
+instanceKlass scala/collection/mutable/StringBuilder$
+instanceKlass scala/collection/immutable/VectorPointer$class
+instanceKlass scala/collection/immutable/IndexedSeq$class
+instanceKlass scala/collection/IndexedSeq$class
+instanceKlass scala/collection/IndexedSeqLike$class
+instanceKlass scala/collection/immutable/VectorPointer
+instanceKlass scala/collection/immutable/IndexedSeq
+instanceKlass scala/collection/immutable/Stream$$hash$colon$colon$
+instanceKlass scala/collection/$colon$plus$
+instanceKlass scala/collection/$plus$colon$
+instanceKlass scala/collection/immutable/$colon$colon$
+instanceKlass scala/collection/immutable/List$$anon$1
+instanceKlass scala/collection/BufferedIterator
+instanceKlass scala/collection/Iterator$class
+instanceKlass scala/collection/AbstractIterator
+instanceKlass scala/collection/TraversableOnce$BufferedCanBuildFrom
+instanceKlass scala/collection/Iterator$
+instanceKlass scala/runtime/BoxesRunTime
+instanceKlass scala/Function0$mcZ$sp$class
+instanceKlass scala/Function0$mcZ$sp
+instanceKlass scala/sys/package$
+instanceKlass scala/collection/mutable/HashEntry$class
+instanceKlass scala/collection/mutable/DefaultEntry
+instanceKlass scala/util/hashing/package$
+instanceKlass scala/runtime/ScalaRunTime$
+instanceKlass scala/runtime/BoxedUnit
+instanceKlass scala/collection/CustomParallelizable$class
+instanceKlass scala/collection/mutable/HashTable$
+instanceKlass scala/collection/mutable/HashTable$class
+instanceKlass scala/collection/mutable/HashTable$HashUtils$class
+instanceKlass scala/collection/mutable/HashEntry
+instanceKlass scala/collection/Parallel
+instanceKlass scala/collection/LinearSeqOptimized$class
+instanceKlass scala/collection/immutable/LinearSeq$class
+instanceKlass scala/collection/LinearSeq$class
+instanceKlass scala/collection/LinearSeqLike$class
+instanceKlass scala/collection/immutable/Seq$class
+instanceKlass scala/collection/immutable/Iterable$class
+instanceKlass scala/collection/immutable/Traversable$class
+instanceKlass scala/collection/Seq$class
+instanceKlass scala/collection/mutable/HashTable
+instanceKlass scala/collection/mutable/HashTable$HashUtils
+instanceKlass scala/collection/SeqView
+instanceKlass scala/collection/SeqViewLike
+instanceKlass scala/collection/SeqLike$class
+instanceKlass scala/collection/GenSeq$class
+instanceKlass scala/collection/GenSeqLike$class
+instanceKlass scala/collection/generic/GenMapFactory
+instanceKlass scala/sys/PropImpl
+instanceKlass scala/sys/BooleanProp
+instanceKlass scala/sys/BooleanProp$
+instanceKlass scala/sys/Prop
+instanceKlass scala/sys/SystemProperties$
+instanceKlass scala/util/control/NoStackTrace$
+instanceKlass scala/util/control/NoStackTrace$class
+instanceKlass scala/util/control/Breaks$TryBlock
+instanceKlass scala/util/control/Breaks
+instanceKlass scala/math/Numeric
+instanceKlass scala/collection/generic/GenTraversableFactory$GenericCanBuildFrom
+instanceKlass scala/package$$anon$1
+instanceKlass scala/Specializable
+instanceKlass scala/package$
+instanceKlass scala/DeprecatedPredef$class
+instanceKlass scala/collection/mutable/ArrayOps
+instanceKlass scala/Predef$$eq$colon$eq
+instanceKlass scala/Predef$$less$colon$less
+instanceKlass scala/collection/CustomParallelizable
+instanceKlass scala/collection/mutable/ArrayLike
+instanceKlass scala/collection/mutable/IndexedSeqOptimized
+instanceKlass scala/collection/IndexedSeqOptimized
+instanceKlass scala/collection/mutable/IndexedSeq
+instanceKlass scala/collection/mutable/IndexedSeqLike
+instanceKlass scala/collection/IndexedSeq
+instanceKlass scala/collection/IndexedSeqLike
+instanceKlass scala/collection/generic/CanBuildFrom
+instanceKlass scala/LowPriorityImplicits
+instanceKlass scala/DeprecatedPredef
+instanceKlass scala/Option$
+instanceKlass net/java/truevfs/kernel/impl/NeedsWriteLockException$
+instanceKlass scala/util/Either
+instanceKlass scala/collection/LinearSeqOptimized
+instanceKlass scala/collection/immutable/LinearSeq
+instanceKlass scala/collection/LinearSeq
+instanceKlass scala/collection/LinearSeqLike
+instanceKlass scala/collection/immutable/Seq
+instanceKlass scala/collection/immutable/Iterable
+instanceKlass scala/collection/immutable/Traversable
+instanceKlass net/java/truevfs/kernel/impl/LockOn$
+instanceKlass scala/runtime/AbstractFunction1
+instanceKlass net/java/truevfs/kernel/spec/FsNodePath
+instanceKlass net/java/truevfs/kernel/spec/FsMountPoint
+instanceKlass net/java/truecommons/shed/PathNormalizer
+instanceKlass net/java/truecommons/shed/UriEncoder
+instanceKlass net/java/truevfs/kernel/spec/FsNodeName
+instanceKlass net/java/truecommons/shed/Paths
+instanceKlass net/java/truecommons/shed/PathSplitter
+instanceKlass org/mage/plugins/card/utils/CardImageUtils
+instanceKlass org/mage/plugins/card/images/CardDownloadData
+instanceKlass org/mage/plugins/card/images/ImageCache$1
+instanceKlass net/java/truevfs/access/TRex
+instanceKlass org/mage/plugins/card/images/ImageCache
+instanceKlass java/security/DomainCombiner
+instanceKlass sun/awt/image/GifFrame
+instanceKlass javax/swing/text/html/ImageView$ImageHandler
+instanceKlass java/awt/geom/EllipseIterator
+instanceKlass sun/java2d/loops/ProcessPath$Edge
+instanceKlass sun/java2d/loops/ProcessPath$ActiveEdgeList
+instanceKlass sun/java2d/loops/ProcessPath$Point
+instanceKlass sun/java2d/loops/ProcessPath$FillData
+instanceKlass sun/java2d/loops/ProcessPath$ProcessHandler
+instanceKlass sun/java2d/loops/ProcessPath$1
+instanceKlass sun/java2d/loops/ProcessPath$EndSubPathHandler
+instanceKlass sun/java2d/loops/ProcessPath
+instanceKlass java/awt/geom/RectIterator
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$227
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$226
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$225
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass mage/client/deckeditor/table/MageCardComparator
+instanceKlass mage/abilities/mana/ManaAbility
+instanceKlass mage/game/permanent/Permanent
+instanceKlass mage/game/stack/StackObjImpl
+instanceKlass mage/game/Game
+instanceKlass java/util/AbstractList$1
+instanceKlass java/lang/Class$EnclosingMethodInfo
+instanceKlass mage/util/RandomUtil
+instanceKlass org/h2/mvstore/db/MVSecondaryIndex$MVStoreCursor
+instanceKlass mage/cards/SplitCardHalf
+instanceKlass mage/abilities/SpellAbility$1
+instanceKlass mage/abilities/ActivatedAbility
+instanceKlass mage/cards/CardSetInfo
+instanceKlass mage/abilities/costs/VariableCost
+instanceKlass mage/abilities/costs/mana/ManaCostImpl$1
+instanceKlass mage/Mana$1
+instanceKlass mage/filter/predicate/Predicates$AndPredicate
+instanceKlass mage/filter/predicate/Predicates
+instanceKlass mage/abilities/Mode
+instanceKlass mage/game/events/GameEvent
+instanceKlass mage/abilities/costs/Costs
+instanceKlass mage/abilities/AbilityImpl
+instanceKlass mage/Mana
+instanceKlass mage/abilities/costs/CostImpl
+instanceKlass mage/MageInt
+instanceKlass sun/security/provider/SeedGenerator$1
+instanceKlass sun/security/provider/SecureRandom$SeederHolder
+instanceKlass java/util/UUID$Holder
+instanceKlass mage/game/stack/StackObject
+instanceKlass mage/game/ZoneChangeInfo
+instanceKlass mage/abilities/Abilities
+instanceKlass mage/abilities/costs/mana/ManaCosts
+instanceKlass mage/abilities/costs/mana/ManaCost
+instanceKlass mage/abilities/costs/Cost
+instanceKlass mage/abilities/Ability
+instanceKlass mage/game/Controllable
+instanceKlass mage/filter/predicate/other/CardTextPredicate
+instanceKlass mage/client/deckeditor/DeckEditorPanel$3
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$224
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$223
+instanceKlass mage/client/util/CardViewNameComparator
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$222
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$221
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$220
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$219
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$218
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$217
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$216
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$215
+instanceKlass mage/client/deckeditor/DeckEditorPanel$$Lambda$214
+instanceKlass mage/client/deckeditor/DeckArea$2
+instanceKlass mage/client/deckeditor/DeckArea$1
+instanceKlass mage/client/cards/DragCardGrid$16
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$213
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$212
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$211
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$210
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$209
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$208
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$207
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$206
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$205
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$204
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$203
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$202
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$201
+instanceKlass mage/client/cards/DragCardGrid$$Lambda$200
+instanceKlass mage/client/util/CardViewRarityComparator
+instanceKlass mage/client/util/CardViewColorIdentityComparator
+instanceKlass mage/client/util/CardViewColorComparator
+instanceKlass mage/client/util/CardViewCostComparator
+instanceKlass mage/client/util/CardViewCardTypeComparator
+instanceKlass mage/client/cards/DragCardGrid$Sort$$Lambda$199
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass mage/cards/decks/DeckCardInfo
+instanceKlass mage/client/cards/CardDraggerGlassPane
+instanceKlass mage/client/cards/DragCardGrid$Settings
+instanceKlass mage/client/cards/DragCardGrid$CardTypeCounter
+instanceKlass mage/cards/decks/DeckCardLayout
+instanceKlass mage/client/deckeditor/DeckArea$Settings
+instanceKlass mage/client/cards/DragCardGrid$DragCardGridListener
+instanceKlass mage/client/deckeditor/table/TableModel$1
+instanceKlass mage/client/util/EventDispatcher
+instanceKlass mage/client/cards/CardEventSource
+instanceKlass mage/client/util/EventSource
+instanceKlass mage/client/util/Listener
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$198
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$197
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$196
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$195
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$194
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$193
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$192
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$191
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$190
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$189
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$188
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$187
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$186
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$185
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$184
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$183
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$182
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$181
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$180
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$179
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$178
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$177
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$176
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$175
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$174
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$173
+instanceKlass mage/client/deckeditor/CardSelector$$Lambda$172
+instanceKlass mage/cards/repository/CardCriteria
+instanceKlass mage/filter/FilterImpl
+instanceKlass mage/filter/Filter
+instanceKlass mage/client/cards/DragCardSource
+instanceKlass mage/filter/predicate/Predicate
+instanceKlass mage/client/cards/ICardGrid
+instanceKlass mage/client/deckeditor/SortSetting
+instanceKlass mage/client/cards/DragCardTarget
+instanceKlass javax/swing/JTable$ModelChange
+instanceKlass mage/view/RoomUsersView
+instanceKlass org/mage/card/arcane/ManaSymbols$2
+instanceKlass mage/client/chat/ChatPanelSeparated$1
+instanceKlass mage/client/remote/CallbackClientImpl$1
+instanceKlass java/awt/LightweightDispatcher$2
+instanceKlass mage/client/util/audio/AudioManager
+instanceKlass mage/client/remote/CallbackClientImpl$$Lambda$171
+instanceKlass mage/client/util/object/SaveObjectUtil
+instanceKlass mage/client/util/audio/MusicPlayer
+instanceKlass org/jboss/util/threadpool/RunnableTaskWrapper
+instanceKlass org/jboss/remoting/ServerInvoker$4
+instanceKlass java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy
+instanceKlass org/jboss/util/threadpool/BasicThreadPool$ThreadPoolThreadFactory
+instanceKlass org/jboss/util/threadpool/BlockingMode
+instanceKlass mage/client/table/TablesPanel$$Lambda$170
+instanceKlass org/jboss/util/collection/ValueRef
+instanceKlass mage/utils/CompressUtil
+instanceKlass mage/remote/traffic/ZippedObjectImpl
+instanceKlass mage/remote/traffic/ZippedObject
+instanceKlass org/jboss/util/threadpool/TaskWrapper
+instanceKlass org/jboss/util/threadpool/BasicThreadPool
+instanceKlass org/jboss/util/threadpool/BasicThreadPoolMBean
+instanceKlass org/jboss/util/threadpool/ThreadPoolMBean
+instanceKlass mage/view/ChatMessage
+instanceKlass java/io/ObjectStreamClass$5
+instanceKlass java/io/ObjectStreamClass$4
+instanceKlass java/io/ObjectStreamClass$3
+instanceKlass java/io/ObjectStreamClass$1
+instanceKlass java/io/ObjectInputValidation
+instanceKlass java/io/ObjectInputStream$GetField
+instanceKlass org/jboss/util/LRUCachePolicy$LRUCacheEntry
+instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$ControlConnectionThread$1
+instanceKlass mage/client/dialog/JoinTableDialog$$Lambda$169
+instanceKlass mage/client/dialog/JoinTableDialog$$Lambda$168
+instanceKlass org/jdesktop/observablecollections/ObservableMap
+instanceKlass org/jdesktop/beansbinding/BeanProperty$SourceEntry
+instanceKlass org/jdesktop/beansbinding/Binding$PSL
+instanceKlass org/jdesktop/beansbinding/Binding$ValueResult
+instanceKlass org/jdesktop/beansbinding/Converter
+instanceKlass java/lang/annotation/Documented
+instanceKlass java/lang/Deprecated
+instanceKlass sun/reflect/generics/tree/VoidDescriptor
+instanceKlass sun/reflect/generics/reflectiveObjects/GenericArrayTypeImpl
+instanceKlass sun/reflect/generics/tree/ArrayTypeSignature
+instanceKlass sun/reflect/generics/tree/TypeVariableSignature
+instanceKlass sun/reflect/generics/tree/IntSignature
+instanceKlass org/jdesktop/swingbinding/adapters/JComboBoxAdapterProvider
+instanceKlass org/jdesktop/swingbinding/adapters/JSpinnerAdapterProvider
+instanceKlass org/jdesktop/swingbinding/adapters/JSliderAdapterProvider
+instanceKlass org/jdesktop/swingbinding/adapters/JTableAdapterProvider
+instanceKlass org/jdesktop/swingbinding/adapters/JListAdapterProvider
+instanceKlass org/jdesktop/swingbinding/adapters/JTextComponentAdapterProvider
+instanceKlass org/jdesktop/swingbinding/adapters/AbstractButtonAdapterProvider
+instanceKlass org/jdesktop/beansbinding/ext/BeanAdapterProvider
+instanceKlass org/jdesktop/beansbinding/ext/BeanAdapterFactory
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$167
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$166
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$165
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$164
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$163
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$162
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$161
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$160
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$159
+instanceKlass mage/client/dialog/NewTournamentDialog$$Lambda$158
+instanceKlass org/jdesktop/beansbinding/BindingGroup$Handler
+instanceKlass org/jdesktop/beansbinding/PropertyStateListener
+instanceKlass org/jdesktop/beansbinding/Bindings
+instanceKlass org/jdesktop/beansbinding/PropertyPath
+instanceKlass org/jdesktop/observablecollections/ObservableMapListener
+instanceKlass org/jdesktop/beansbinding/BindingListener
+instanceKlass org/jdesktop/beansbinding/BindingGroup
+instanceKlass org/jdesktop/beansbinding/Binding
+instanceKlass org/jdesktop/beansbinding/Property
+instanceKlass mage/game/tournament/LimitedOptions
+instanceKlass mage/client/dialog/NewTableDialog$$Lambda$157
+instanceKlass mage/client/dialog/NewTableDialog$$Lambda$156
+instanceKlass mage/client/dialog/NewTableDialog$$Lambda$155
+instanceKlass mage/client/dialog/NewTableDialog$$Lambda$154
+instanceKlass mage/client/dialog/NewTableDialog$$Lambda$153
+instanceKlass mage/client/table/NewPlayerPanel$$Lambda$152
+instanceKlass mage/client/table/NewPlayerPanel$$Lambda$151
+instanceKlass mage/client/util/Event
+instanceKlass java/lang/invoke/SerializedLambda
+instanceKlass mage/client/util/sets/ConstructedFormats$1
+instanceKlass mage/client/util/sets/ConstructedFormats$$Lambda$150
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass mage/client/util/sets/ConstructedFormats$$Lambda$149
+instanceKlass org/h2/result/SortOrder
+instanceKlass org/h2/command/dml/SelectOrderBy
+instanceKlass com/j256/ormlite/stmt/query/OrderBy
+instanceKlass mage/deck/Standard$1
+instanceKlass mage/cards/CardGraphicInfo
+instanceKlass mage/MageObjectImpl
+instanceKlass mage/cards/ExpansionSet$SetCardInfo
+instanceKlass mage/util/ClassScanner
+instanceKlass mage/cards/decks/DeckValidator
+instanceKlass mage/client/util/sets/ConstructedFormats
+instanceKlass mage/client/util/gui/countryBox/CountryUtil
+instanceKlass javax/swing/SwingWorker$5
+instanceKlass mage/client/MageFrame$$Lambda$148
+instanceKlass org/h2/mvstore/db/TransactionStore$TransactionMap$1
+instanceKlass org/h2/util/DateTimeUtils
+instanceKlass java/time/Instant
+instanceKlass java/time/temporal/TemporalAdjuster
+instanceKlass java/time/temporal/Temporal
+instanceKlass java/time/temporal/TemporalAccessor
+instanceKlass org/h2/result/SimpleRow
+instanceKlass org/h2/expression/AggregateData
+instanceKlass org/h2/util/HashBase
+instanceKlass mage/cards/repository/CardRepository$$Lambda$147
+instanceKlass mage/ObjectColor
+instanceKlass mage/util/Copyable
+instanceKlass org/h2/mvstore/Page$PageChildren
+instanceKlass org/h2/mvstore/ConcurrentArrayList$1
+instanceKlass org/h2/mvstore/MVStore$2
+instanceKlass org/h2/mvstore/Page$PageReference
+instanceKlass java/util/concurrent/ConcurrentHashMap$MapEntry
+instanceKlass com/j256/ormlite/misc/JavaxPersistence
+instanceKlass com/j256/ormlite/field/ForeignCollectionField
+instanceKlass mage/cards/Card
+instanceKlass mage/MageObject
+instanceKlass mage/MageItem
+instanceKlass mage/cards/repository/CardInfo
+instanceKlass org/h2/mvstore/DataUtils$MapEntry
+instanceKlass mage/view/TournamentTypeView
+instanceKlass mage/view/GameTypeView
+instanceKlass mage/remote/SessionImpl$4
+instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$2
+instanceKlass java/util/function/Predicate
+instanceKlass java/util/function/Consumer
+instanceKlass java/util/function/UnaryOperator
+instanceKlass org/jboss/remoting/Client$7
+instanceKlass org/jboss/remoting/ServerInvoker$CallbackContainer
+instanceKlass org/jboss/remoting/security/SSLSocketFactoryServiceMBean
+instanceKlass org/jboss/remoting/security/SocketFactoryMBean
+instanceKlass org/jboss/remoting/security/SSLSocketBuilderMBean
+instanceKlass org/jboss/remoting/SerializableStore
+instanceKlass org/jboss/remoting/callback/CallbackErrorHandler
+instanceKlass org/jboss/remoting/AbstractInvoker$CallbackHandlerHolder
+instanceKlass org/jboss/util/LRUCachePolicy$LRUList
+instanceKlass org/jboss/util/LRUCachePolicy
+instanceKlass org/jboss/util/CachePolicy
+instanceKlass org/jboss/remoting/transport/Connector$5
+instanceKlass org/jboss/remoting/ServerInvoker$2
+instanceKlass org/jboss/remoting/Lease
+instanceKlass org/jboss/remoting/ConnectionNotifier
+instanceKlass org/jboss/remoting/ServerInvoker$1
+instanceKlass javax/management/MBeanServer
+instanceKlass org/jboss/remoting/callback/ServerInvokerCallbackHandler
+instanceKlass org/jboss/remoting/callback/AsynchInvokerCallbackHandler
+instanceKlass org/jboss/remoting/socketfactory/ServerSocketFactoryWrapper
+instanceKlass javax/net/ServerSocketFactory
+instanceKlass org/jboss/remoting/transport/socket/SocketServerInvokerMBean
+instanceKlass org/jboss/remoting/ServerInvokerMBean
+instanceKlass org/jboss/remoting/transport/bisocket/TransportServerFactory
+instanceKlass org/jboss/remoting/transport/ServerFactory
+instanceKlass org/jboss/remoting/serialization/ClassLoaderUtility$1
+instanceKlass org/jboss/remoting/transport/Connector$3
+instanceKlass org/jboss/remoting/transport/Connector$1
+instanceKlass javax/management/MBeanServerConnection
+instanceKlass javax/management/ObjectName
+instanceKlass javax/management/QueryExp
+instanceKlass org/jboss/remoting/Client$9
+instanceKlass org/jboss/remoting/transport/PortUtil$1
+instanceKlass mage/remote/SessionImpl$CallbackHandler
+instanceKlass org/jboss/remoting/util/TimerUtil
+instanceKlass org/jboss/remoting/ConnectionValidator$4
+instanceKlass org/jboss/remoting/util/StoppableTimerTask
+instanceKlass org/jboss/remoting/Client$ConnectionValidatorKey
+instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$HashIterator
+instanceKlass org/jboss/remoting/ClientHolder
+instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$Entry
+instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$Segment
+instanceKlass org/jboss/serial/objectmetamodel/DataContainer$DataContainerDirectInput
+instanceKlass org/jboss/serial/objectmetamodel/ObjectsCache$JBossSeralizationInputInterface
+instanceKlass java/util/function/BiConsumer
+instanceKlass org/jboss/serial/persister/EnumerationPersister
+instanceKlass org/jboss/serial/persister/ProxyPersister
+instanceKlass org/jboss/serial/persister/ClassReferencePersister
+instanceKlass org/jboss/serial/persister/RegularObjectPersister
+instanceKlass org/jboss/serial/persister/ExternalizePersister
+instanceKlass org/jboss/serial/persister/ArrayPersister
+instanceKlass org/jboss/serial/persister/Persister
+instanceKlass org/jboss/serial/persister/PersistResolver
+instanceKlass org/jboss/serial/util/StringUtil
+instanceKlass org/jboss/serial/classmetamodel/StreamingClass
+instanceKlass gnu/trove/HashFunctions
+instanceKlass java/io/ObjectStreamClass$MemberSignature
+instanceKlass org/jboss/serial/classmetamodel/FieldsManager
+instanceKlass org/jboss/serial/classmetamodel/ClassMetadataField
+instanceKlass gnu/trove/TLongObjectProcedure
+instanceKlass gnu/trove/TLongHashingStrategy
+instanceKlass java/lang/reflect/WeakCache$LookupValue
+instanceKlass org/jboss/serial/util/HashStringUtil
+instanceKlass org/jboss/serial/classmetamodel/ClassMetamodelFactory$CacheLoaderReference
+instanceKlass org/jboss/serial/util/FastHashMap
+instanceKlass org/jboss/serial/classmetamodel/ClassMetamodelFactory
+instanceKlass org/jboss/serial/objectmetamodel/ObjectDescriptorFactory
+instanceKlass org/jboss/serial/objectmetamodel/DataContainer$DataContainerDirectOutput
+instanceKlass org/jboss/serial/objectmetamodel/ObjectsCache$JBossSeralizationOutputInterface
+instanceKlass gnu/trove/TIntObjectProcedure
+instanceKlass gnu/trove/TIntHashingStrategy
+instanceKlass java/util/DualPivotQuicksort
+instanceKlass gnu/trove/PrimeFinder
+instanceKlass gnu/trove/TObjectIntProcedure
+instanceKlass gnu/trove/THash
+instanceKlass org/jboss/serial/objectmetamodel/DataExport
+instanceKlass org/jboss/serial/io/JBossObjectInputStream$1
+instanceKlass java/io/ObjectStreamClass$ExceptionInfo
+instanceKlass org/jboss/serial/util/ClassMetaConsts$1
+instanceKlass org/jboss/serial/classmetamodel/ConstructorManager
+instanceKlass org/jboss/serial/classmetamodel/ClassMetaDataSlot
+instanceKlass org/jboss/serial/classmetamodel/ClassMetaData
+instanceKlass gnu/trove/TObjectHashingStrategy
+instanceKlass org/jboss/serial/references/PersistentReference
+instanceKlass org/jboss/serial/util/ClassMetaConsts
+instanceKlass org/jboss/serial/classmetamodel/ClassResolver
+instanceKlass org/jboss/serial/util/StringUtilBuffer$Position
+instanceKlass org/jboss/serial/util/StringUtilBuffer
+instanceKlass java/io/ObjectOutputStream$DebugTraceInfoStack
+instanceKlass java/io/ObjectOutputStream$PutField
+instanceKlass java/io/SerialCallbackContext
+instanceKlass java/io/ObjectOutputStream$ReplaceTable
+instanceKlass java/io/ObjectOutputStream$HandleTable
+instanceKlass org/jboss/serial/objectmetamodel/ObjectSubstitutionInterface
+instanceKlass org/jboss/serial/objectmetamodel/DataContainerConstants
+instanceKlass org/jboss/remoting/serialization/IMarshalledValue
+instanceKlass org/jboss/remoting/serialization/SerializationManager
+instanceKlass org/jboss/remoting/serialization/SerializationStreamFactory
+instanceKlass org/jboss/remoting/serialization/SerializationStreamFactoryMBean
+instanceKlass org/jboss/remoting/invocation/RemoteInvocation
+instanceKlass org/jboss/remoting/marshal/rmi/RMIUnMarshaller
+instanceKlass org/jboss/remoting/marshal/rmi/RMIMarshaller
+instanceKlass org/jboss/remoting/marshal/serializable/SerializableUnMarshaller
+instanceKlass org/jboss/remoting/marshal/UpdateableClassloaderUnMarshaller
+instanceKlass org/jboss/remoting/marshal/VersionedUnMarshaller
+instanceKlass org/jboss/remoting/marshal/PreferredStreamUnMarshaller
+instanceKlass org/jboss/remoting/marshal/SerialUnMarshaller
+instanceKlass org/jboss/remoting/marshal/serializable/SerializableMarshaller
+instanceKlass org/jboss/remoting/marshal/VersionedMarshaller
+instanceKlass org/jboss/remoting/marshal/PreferredStreamMarshaller
+instanceKlass org/jboss/remoting/marshal/SerialMarshaller
+instanceKlass org/jboss/remoting/marshal/MarshalFactory
+instanceKlass mage/remote/SessionImpl$ClientConnectionListener
+instanceKlass mage/view/GameView
+instanceKlass mage/interfaces/ServerState
+instanceKlass mage/view/DraftPickView
+instanceKlass mage/game/tournament/TournamentOptions
+instanceKlass mage/view/TournamentView
+instanceKlass mage/cards/decks/DeckCardLists
+instanceKlass mage/game/match/MatchOptions
+instanceKlass org/jboss/remoting/transporter/TransporterClient$6
+instanceKlass EDU/oswego/cs/dl/util/concurrent/Semaphore
+instanceKlass EDU/oswego/cs/dl/util/concurrent/Sync
+instanceKlass org/jboss/remoting/InvokerRegistry$ClientInvokerHolder
+instanceKlass org/jboss/remoting/transport/bisocket/BisocketClientInvoker$BooleanHolder
+instanceKlass org/jboss/remoting/transport/socket/ServerAddress
+instanceKlass org/jboss/remoting/marshal/Marshaller
+instanceKlass org/jboss/remoting/LeasePinger
+instanceKlass org/jboss/remoting/marshal/UnMarshaller
+instanceKlass org/jboss/remoting/InvocationRequest
+instanceKlass java/beans/PropertyEditorSupport
+instanceKlass java/beans/PropertyEditor
+instanceKlass java/beans/PropertyEditorManager
+instanceKlass org/jboss/util/propertyeditor/PropertyEditors$Initialize
+instanceKlass org/jboss/util/propertyeditor/PropertyEditors
+instanceKlass org/jboss/remoting/transport/socket/SocketWrapper
+instanceKlass org/jboss/remoting/transport/socket/OpenConnectionChecker
+instanceKlass org/jboss/remoting/marshal/MarshallerLoaderHandler
+instanceKlass org/jboss/remoting/marshal/MarshallerLoaderConstants
+instanceKlass org/jboss/remoting/ServerInvocationHandler
+instanceKlass org/jboss/remoting/transport/Connector
+instanceKlass org/jboss/remoting/transport/ConnectorMBean
+instanceKlass org/jboss/remoting/marshal/MarshallLoaderFactory
+instanceKlass org/jboss/remoting/AbstractInvoker$1
+instanceKlass org/jboss/remoting/InvocationResponse
+instanceKlass org/jboss/remoting/socketfactory/SocketFactoryWrapper
+instanceKlass javax/net/SocketFactory
+instanceKlass org/jboss/remoting/AbstractInvoker
+instanceKlass org/jboss/remoting/transport/BidirectionalClientInvoker
+instanceKlass org/jboss/remoting/transport/bisocket/TransportClientFactory
+instanceKlass org/jboss/remoting/transport/ClientFactory
+instanceKlass org/jboss/remoting/serialization/ClassLoaderUtility$4
+instanceKlass org/jboss/remoting/serialization/ClassLoaderUtility
+instanceKlass org/jboss/remoting/transport/ClientInvoker
+instanceKlass org/jboss/remoting/Invoker
+instanceKlass org/jboss/remoting/InvokerRegistry
+instanceKlass org/jboss/remoting/Client$6
+instanceKlass org/jboss/remoting/transport/PortUtil
+instanceKlass org/jboss/util/HashCode
+instanceKlass org/jboss/util/id/UID
+instanceKlass org/jboss/util/platform/PID
+instanceKlass org/jboss/util/id/VMID$1
+instanceKlass org/jboss/util/id/VMID
+instanceKlass org/jboss/util/id/GUID
+instanceKlass org/jboss/util/id/ID
+instanceKlass org/jboss/remoting/Client$3
+instanceKlass org/jboss/remoting/Client$1
+instanceKlass org/jboss/util/threadpool/ThreadPool
+instanceKlass org/jboss/remoting/Client
+instanceKlass org/jboss/remoting/transporter/DefaultLoadBalancer
+instanceKlass org/jboss/remoting/transporter/LoadBalancer
+instanceKlass org/jboss/remoting/detection/Detector
+instanceKlass javax/management/MBeanRegistration
+instanceKlass org/jboss/remoting/transporter/TransporterClient
+instanceKlass mage/interfaces/MageServer
+instanceKlass org/jboss/remoting/Home
+instanceKlass java/net/NetworkInterface$2
+instanceKlass java/net/DefaultInterface
+instanceKlass java/net/InterfaceAddress
+instanceKlass java/net/NetworkInterface$1
+instanceKlass java/net/NetworkInterface
+instanceKlass org/jboss/remoting/InvokerLocator$2
+instanceKlass org/jboss/remoting/util/SecurityUtility$1
+instanceKlass org/jboss/remoting/util/SecurityUtility
+instanceKlass org/jboss/remoting/Version
+instanceKlass org/jboss/logging/NullLoggerPlugin
+instanceKlass org/jboss/logging/LoggerPlugin
+instanceKlass org/jboss/logging/Logger
+instanceKlass org/jboss/remoting/InvokerLocator
+instanceKlass mage/remote/SessionImpl$6
+instanceKlass org/jboss/remoting/ConnectionListener
+instanceKlass java/net/Authenticator
+instanceKlass mage/remote/SessionImpl$5
+instanceKlass javax/swing/JComponent$$Lambda$146
+instanceKlass mage/players/net/SkipPrioritySteps
+instanceKlass java/awt/AWTEvent$2
+instanceKlass java/awt/LightweightDispatcher$1
+instanceKlass java/awt/Container$MouseEventTargetFilter
+instanceKlass java/awt/Container$EventTargetFilter
+instanceKlass java/awt/Cursor$CursorDisposer
+instanceKlass java/text/AttributedString$AttributedStringIterator
+instanceKlass java/text/AttributedCharacterIterator
+instanceKlass java/text/AttributedString
+instanceKlass sun/awt/im/CompositionAreaHandler
+instanceKlass javax/swing/text/JTextComponent$InputMethodRequestsHandler
+instanceKlass java/awt/KeyboardFocusManager$3
+instanceKlass javax/swing/plaf/nimbus/ImageScalingHelper
+instanceKlass sun/java2d/pipe/AlphaPaintPipe$TileContext
+instanceKlass java/awt/MultipleGradientPaintContext
+instanceKlass java/awt/PaintContext
+instanceKlass sun/java2d/d3d/D3DPaints
+instanceKlass java/awt/GradientPaint
+instanceKlass java/awt/MultipleGradientPaint
+instanceKlass java/awt/geom/Path2D$Iterator
+instanceKlass java/awt/geom/RoundRectIterator
+instanceKlass java/awt/geom/PathIterator
+instanceKlass sun/dc/pr/Rasterizer$ConsumerDisposer
+instanceKlass sun/dc/pr/PathDasher$1
+instanceKlass sun/dc/pr/PathDasher
+instanceKlass sun/awt/geom/PathConsumer2D
+instanceKlass sun/dc/pr/PathStroker$1
+instanceKlass sun/dc/pr/PathStroker
+instanceKlass sun/dc/pr/PathFiller$1
+instanceKlass sun/dc/pr/PathFiller
+instanceKlass sun/dc/path/PathConsumer
+instanceKlass sun/dc/pr/Rasterizer
+instanceKlass sun/java2d/pipe/AATileGenerator
+instanceKlass javax/swing/plaf/nimbus/ImageCache
+instanceKlass javax/swing/RepaintManager$3
+instanceKlass javax/swing/KeyboardManager$ComponentKeyStrokePair
+instanceKlass java/awt/KeyboardFocusManager$LightweightFocusRequest
+instanceKlass java/awt/KeyboardFocusManager$HeavyweightFocusRequest
+instanceKlass java/awt/DefaultKeyboardFocusManager$TypeAheadMarker
+instanceKlass mage/cards/CardDimensions
+instanceKlass javax/swing/Timer$1
+instanceKlass mage/client/util/stats/MemoryUsageStatUtil
+instanceKlass mage/client/util/Config
+instanceKlass javax/swing/TimerQueue$DelayedTimer
+instanceKlass javax/swing/SwingWorker$SwingWorkerPropertyChangeSupport$1
+instanceKlass javax/swing/SwingWorker$7
+instanceKlass javax/swing/SwingWorker$6
+instanceKlass mage/components/ImagePanel$1
+instanceKlass sun/java2d/loops/FontInfo
+instanceKlass java/awt/PrintGraphics
+instanceKlass java/awt/print/PrinterGraphics
+instanceKlass sun/awt/SunGraphicsCallback
+instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$145
+instanceKlass sun/java2d/pipe/BufferedPaints
+instanceKlass sun/java2d/d3d/D3DSurfaceData$1
+instanceKlass sun/java2d/d3d/D3DSurfaceData$1Status
+instanceKlass javax/swing/RepaintManager$4
+instanceKlass javax/swing/RepaintManager$2$1
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUI$DelayedSelectionUpdater
+instanceKlass java/awt/EventQueue$4
+instanceKlass java/awt/SequencedEvent$1
+instanceKlass sun/awt/AWTAccessor$SequencedEventAccessor
+instanceKlass mage/client/util/SystemUtil
+instanceKlass mage/client/MageFrame$$Lambda$144
+instanceKlass java/io/ObjectStreamClass$ClassDataSlot
+instanceKlass java/io/ObjectStreamClass$FieldReflector
+instanceKlass java/io/ObjectOutput
+instanceKlass java/io/ObjectStreamClass$2
+instanceKlass java/io/Externalizable
+instanceKlass java/io/ObjectStreamClass$EntryFuture
+instanceKlass java/io/ObjectStreamClass$Caches
+instanceKlass java/io/ObjectStreamClass
+instanceKlass java/io/Bits
+instanceKlass java/io/ObjectInputStream$ValidationList
+instanceKlass java/io/ObjectInputStream$HandleTable$HandleList
+instanceKlass java/io/ObjectInputStream$HandleTable
+instanceKlass java/io/ObjectInputStream$$Lambda$143
+instanceKlass sun/misc/JavaObjectInputStreamAccess
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/misc/ObjectStreamClassValidator
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass mage/client/MageFrame$$Lambda$142
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/invoke/util/VerifyAccess$1
+instanceKlass java/awt/CardLayout
+instanceKlass net/java/balloontip/positioners/BalloonTipPositioner$1
+instanceKlass net/java/balloontip/BalloonTip$10
+instanceKlass net/java/balloontip/BalloonTip$1
+instanceKlass net/java/balloontip/BalloonTip$VisibilityControl
+instanceKlass mage/client/util/gui/ArrowBuilder
+instanceKlass javax/swing/SwingHeavyWeight
+instanceKlass sun/awt/windows/WTrayIconPeer$IconObserver
+instanceKlass java/awt/peer/TrayIconPeer
+instanceKlass mage/client/components/tray/MageTray$$Lambda$141
+instanceKlass mage/client/components/tray/MageTray$$Lambda$140
+instanceKlass mage/client/components/tray/MageTray$$Lambda$139
+instanceKlass mage/client/components/tray/MageTray$$Lambda$138
+instanceKlass mage/client/components/tray/MageTray$$Lambda$137
+instanceKlass mage/client/components/tray/MageTray$$Lambda$136
+instanceKlass java/awt/PopupMenu$1
+instanceKlass sun/awt/AWTAccessor$PopupMenuAccessor
+instanceKlass java/awt/Menu$1
+instanceKlass sun/awt/AWTAccessor$MenuAccessor
+instanceKlass java/awt/MenuItem$1
+instanceKlass sun/awt/AWTAccessor$MenuItemAccessor
+instanceKlass java/awt/MenuComponent$1
+instanceKlass sun/awt/AWTAccessor$MenuComponentAccessor
+instanceKlass mage/client/components/tray/MageTray$$Lambda$135
+instanceKlass java/awt/TrayIcon$1
+instanceKlass sun/awt/AWTAccessor$TrayIconAccessor
+instanceKlass org/mage/plugins/card/utils/Transparency
+instanceKlass java/awt/peer/SystemTrayPeer
+instanceKlass java/awt/SystemTray$1
+instanceKlass sun/awt/AWTAccessor$SystemTrayAccessor
+instanceKlass java/awt/SystemTray
+instanceKlass sun/java2d/loops/GraphicsPrimitive$GeneralBinaryOp
+instanceKlass sun/awt/image/OffScreenImageSource
+instanceKlass org/mage/plugins/card/utils/ImageManager
+instanceKlass mage/client/components/MageRoundPane$$Lambda$134
+instanceKlass mage/client/components/MageRoundPane$Key
+instanceKlass mage/client/components/MageRoundPane$$Lambda$133
+instanceKlass mage/client/components/MageRoundPane$ShadowKey
+instanceKlass javax/swing/JTable$4
+instanceKlass javax/swing/JTable$5
+instanceKlass javax/swing/JTable$2
+instanceKlass javax/swing/JTable$Resizable3
+instanceKlass javax/swing/JTable$Resizable2
+instanceKlass java/awt/image/FilteredImageSource
+instanceKlass java/awt/image/ImageFilter
+instanceKlass javax/swing/DefaultRowSorter$Row
+instanceKlass com/google/common/base/Joiner$MapJoiner
+instanceKlass com/google/common/base/Joiner
+instanceKlass com/google/common/collect/Collections2
+instanceKlass com/google/common/collect/BiMap
+instanceKlass com/google/common/base/Predicate
+instanceKlass com/google/common/collect/MapDifference
+instanceKlass com/google/common/collect/Maps
+instanceKlass com/google/common/collect/Sets
+instanceKlass mage/client/preference/MagePreferences
+instanceKlass com/google/common/base/Preconditions
+instanceKlass com/google/common/collect/Hashing
+instanceKlass com/google/common/collect/ImmutableCollection
+instanceKlass mage/client/util/IgnoreList
+instanceKlass mage/client/table/TablesPanel$$Lambda$132
+instanceKlass java/util/Optional
+instanceKlass javax/swing/RowFilter
+instanceKlass mage/client/chat/ChatPanelBasic$2
+instanceKlass mage/client/table/TablesPanel$$Lambda$131
+instanceKlass mage/client/table/TablesPanel$$Lambda$130
+instanceKlass mage/client/table/TablesPanel$$Lambda$129
+instanceKlass mage/client/table/TablesPanel$$Lambda$128
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass mage/client/table/TablesPanel$$Lambda$127
+instanceKlass mage/client/table/TablesPanel$$Lambda$126
+instanceKlass mage/client/table/TablesPanel$$Lambda$125
+instanceKlass mage/client/table/TablesPanel$$Lambda$124
+instanceKlass mage/client/table/TablesPanel$$Lambda$123
+instanceKlass mage/client/table/TablesPanel$$Lambda$122
+instanceKlass mage/client/table/TablesPanel$$Lambda$121
+instanceKlass mage/client/table/TablesPanel$$Lambda$120
+instanceKlass mage/client/table/TablesPanel$$Lambda$119
+instanceKlass mage/client/table/TablesPanel$$Lambda$118
+instanceKlass mage/client/table/TablesPanel$$Lambda$117
+instanceKlass mage/client/table/TablesPanel$$Lambda$116
+instanceKlass mage/client/table/TablesPanel$$Lambda$115
+instanceKlass mage/client/table/TablesPanel$$Lambda$114
+instanceKlass mage/client/table/TablesPanel$$Lambda$113
+instanceKlass mage/client/table/TablesPanel$$Lambda$112
+instanceKlass mage/client/table/TablesPanel$$Lambda$111
+instanceKlass mage/client/table/TablesPanel$$Lambda$110
+instanceKlass mage/client/table/TablesPanel$$Lambda$109
+instanceKlass mage/client/table/TablesPanel$$Lambda$108
+instanceKlass mage/client/table/TablesPanel$$Lambda$107
+instanceKlass mage/client/table/TablesPanel$$Lambda$106
+instanceKlass javax/swing/JTable$AccessibleJTable$AccessibleJTableModelChange
+instanceKlass javax/accessibility/AccessibleTableModelChange
+instanceKlass mage/client/util/gui/TableUtil
+instanceKlass javax/swing/JTable$SortManager
+instanceKlass javax/accessibility/AccessibleExtendedTable
+instanceKlass javax/accessibility/AccessibleTable
+instanceKlass javax/swing/Autoscroller
+instanceKlass javax/swing/table/TableColumn
+instanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler
+instanceKlass javax/swing/plaf/basic/BasicSpinnerUI$Handler
+instanceKlass javax/swing/plaf/synth/SynthSpinnerUI$SpinnerLayout
+instanceKlass javax/swing/plaf/synth/SynthSpinnerUI$EditorFocusHandler
+instanceKlass javax/swing/JSpinner$ModelListener
+instanceKlass javax/swing/text/NavigationFilter$FilterBypass
+instanceKlass javax/swing/text/DocumentFilter
+instanceKlass javax/swing/JFormattedTextField$AbstractFormatterFactory
+instanceKlass javax/swing/JFormattedTextField$AbstractFormatter
+instanceKlass javax/swing/JFormattedTextField$DocumentHandler
+instanceKlass javax/swing/AbstractSpinnerModel
+instanceKlass javax/swing/SpinnerModel
+instanceKlass mage/view/UsersView
+instanceKlass javax/swing/plaf/basic/BasicTableUI$Handler
+instanceKlass javax/swing/AbstractCellEditor
+instanceKlass javax/swing/tree/TreeCellEditor
+instanceKlass javax/swing/table/TableCellEditor
+instanceKlass javax/swing/CellEditor
+instanceKlass javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler
+instanceKlass javax/swing/plaf/basic/BasicTableHeaderUI$1
+instanceKlass sun/swing/table/DefaultTableCellHeaderRenderer$EmptyIcon
+instanceKlass javax/swing/table/TableCellRenderer
+instanceKlass javax/swing/JTable$$Lambda$105
+instanceKlass javax/swing/JTable$$Lambda$104
+instanceKlass javax/swing/JTable$$Lambda$103
+instanceKlass javax/swing/JTable$$Lambda$102
+instanceKlass javax/swing/JTable$$Lambda$101
+instanceKlass javax/swing/JTable$$Lambda$100
+instanceKlass javax/swing/JTable$$Lambda$99
+instanceKlass javax/swing/JTable$$Lambda$98
+instanceKlass javax/swing/JTable$$Lambda$97
+instanceKlass javax/swing/JTable$$Lambda$96
+instanceKlass javax/swing/JTable$$Lambda$95
+instanceKlass javax/swing/table/DefaultTableColumnModel
+instanceKlass javax/swing/table/TableColumnModel
+instanceKlass javax/swing/plaf/basic/BasicSplitPaneUI$Handler
+instanceKlass javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager
+instanceKlass javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout
+instanceKlass java/util/ArrayList$1
+instanceKlass mage/view/MatchView
+instanceKlass mage/view/TableView
+instanceKlass javax/swing/SwingWorker$1
+instanceKlass sun/swing/AccumulativeRunnable
+instanceKlass javax/swing/SwingWorker
+instanceKlass java/util/concurrent/Executors$RunnableAdapter
+instanceKlass mage/client/MageFrame$$Lambda$94
+instanceKlass mage/client/dialog/ErrorDialog$$Lambda$93
+instanceKlass javax/swing/plaf/synth/SynthTextAreaUI$Handler
+instanceKlass mage/client/dialog/ResetPasswordDialog$$Lambda$92
+instanceKlass mage/client/dialog/ResetPasswordDialog$$Lambda$91
+instanceKlass mage/client/dialog/ResetPasswordDialog$$Lambda$90
+instanceKlass sun/nio/ch/Util$5
+instanceKlass sun/nio/ch/FileChannelImpl$Unmapper
+instanceKlass java/nio/channels/FileChannel$MapMode
+instanceKlass sun/font/Type1Font$1
+instanceKlass sun/font/SunFontManager$11
+instanceKlass sun/font/SunFontManager$10
+instanceKlass mage/client/dialog/RegisterUserDialog$$Lambda$89
+instanceKlass mage/client/dialog/RegisterUserDialog$$Lambda$88
+instanceKlass mage/client/dialog/RegisterUserDialog$$Lambda$87
+instanceKlass org/h2/mvstore/WriteBuffer
+instanceKlass org/h2/mvstore/Chunk
+instanceKlass javax/swing/GroupLayout$AutoPreferredGapMatch
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$86
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$85
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$84
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$83
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$82
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$81
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$80
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$79
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$78
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$77
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$76
+instanceKlass mage/client/dialog/ConnectDialog$$Lambda$75
+instanceKlass javax/swing/JInternalFrame$FocusPropertyChangeListener
+instanceKlass sun/swing/MenuItemLayoutHelper$ColumnAlignment
+instanceKlass javax/swing/plaf/basic/BasicInternalFrameUI$Handler
+instanceKlass javax/swing/event/InternalFrameListener
+instanceKlass javax/swing/plaf/synth/SynthInternalFrameTitlePane$SynthTitlePaneLayout
+instanceKlass javax/swing/plaf/basic/BasicInternalFrameTitlePane$Handler
+instanceKlass javax/swing/plaf/synth/SynthDesktopIconUI$Handler
+instanceKlass mage/client/remote/CallbackClientImpl
+instanceKlass org/jboss/remoting/callback/InvokerCallbackHandler
+instanceKlass mage/remote/SessionImpl$RemotingTask
+instanceKlass mage/remote/SessionImpl
+instanceKlass javax/swing/GroupLayout$SpringDelta
+instanceKlass javax/swing/GroupLayout$1
+instanceKlass javax/swing/GroupLayout$ComponentInfo
+instanceKlass javax/swing/GroupLayout
+instanceKlass mage/client/MageFrame$$Lambda$74
+instanceKlass mage/client/MageFrame$$Lambda$73
+instanceKlass mage/client/MageFrame$$Lambda$72
+instanceKlass mage/client/MageFrame$$Lambda$71
+instanceKlass mage/client/MageFrame$$Lambda$70
+instanceKlass mage/client/MageFrame$$Lambda$69
+instanceKlass mage/client/MageFrame$$Lambda$68
+instanceKlass sun/awt/image/PNGImageDecoder$Chromaticities
+instanceKlass mage/client/MageFrame$$Lambda$67
+instanceKlass sun/awt/image/ImageDecoder
+instanceKlass java/net/URLConnection$1
+instanceKlass sun/net/www/MimeEntry
+instanceKlass sun/net/www/MimeTable$DefaultInstanceHolder$1
+instanceKlass sun/net/www/MimeTable$DefaultInstanceHolder
+instanceKlass sun/net/www/MimeTable$1
+instanceKlass sun/net/www/MimeTable
+instanceKlass java/net/FileNameMap
+instanceKlass sun/awt/image/ImageFetcher$1
+instanceKlass sun/awt/image/FetcherInfo
+instanceKlass sun/awt/image/ImageConsumerQueue
+instanceKlass sun/awt/image/ImageWatched$Link
+instanceKlass sun/awt/image/ImageWatched
+instanceKlass java/awt/image/ImageConsumer
+instanceKlass sun/awt/image/InputStreamImageSource
+instanceKlass sun/awt/image/ImageFetchable
+instanceKlass javax/swing/plaf/basic/BasicToolBarUI$Handler
+instanceKlass javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager
+instanceKlass javax/swing/JToolBar$DefaultToolBarLayout
+instanceKlass javax/swing/plaf/basic/BasicDesktopPaneUI$Handler
+instanceKlass javax/swing/DefaultDesktopManager
+instanceKlass mage/client/components/MageJDesktop$1
+instanceKlass org/jdesktop/swingx/painter/Painter
+instanceKlass org/mage/plugins/theme/ThemePluginImpl
+instanceKlass mage/view/SimpleCardView
+instanceKlass mage/components/CardInfoPane
+instanceKlass org/mage/plugins/card/CardPluginImpl
+instanceKlass net/xeoh/plugins/base/options/addpluginsfrom/OptionReportAfter
+instanceKlass net/xeoh/plugins/base/util/PluginManagerUtil$2
+instanceKlass net/xeoh/plugins/base/util/PluginManagerUtil$1
+instanceKlass net/xeoh/plugins/base/impl/registry/PluggableMetaInformation$PluginLoadedInformation
+instanceKlass net/xeoh/plugins/base/annotations/configuration/ConfigurationFile
+instanceKlass net/xeoh/plugins/base/annotations/configuration/IsDisabled
+instanceKlass net/xeoh/plugins/base/impl/registry/PluggableClassMetaInformation
+instanceKlass net/xeoh/plugins/base/annotations/meta/Author
+instanceKlass net/xeoh/plugins/base/annotations/PluginImplementation
+instanceKlass org/mage/plugins/counter/CounterPluginImpl
+instanceKlass mage/interfaces/plugin/CounterPlugin
+instanceKlass org/mage/plugins/counter/CounterBean
+instanceKlass java/util/zip/ZipFile$ZipEntryIterator
+instanceKlass java/util/jar/JarFile$JarEntryIterator
+instanceKlass net/xeoh/plugins/base/impl/classpath/cache/JARCache$JARInformation
+instanceKlass net/jcores/cores/CoreObject$6
+instanceKlass net/xeoh/plugins/base/impl/classpath/locator/AbstractClassPathLocation
+instanceKlass net/jcores/cores/CoreObject$5
+instanceKlass net/jcores/cores/CoreFile$8
+instanceKlass net/jcores/options/Option
+instanceKlass java/net/URLEncoder
+instanceKlass java/net/URLDecoder
+instanceKlass net/xeoh/plugins/base/options/addpluginsfrom/OptionLoadAsynchronously
+instanceKlass net/jcores/utils/Handler
+instanceKlass net/jcores/interfaces/functions/F1Object2Bool
+instanceKlass net/jcores/cores/Core
+instanceKlass java/util/concurrent/SynchronousQueue$TransferStack$SNode
+instanceKlass java/util/concurrent/SynchronousQueue$Transferer
+instanceKlass net/jcores/CommonCore$1
+instanceKlass net/jcores/utils/Reporter
+instanceKlass net/jcores/managers/Manager
+instanceKlass net/jcores/CommonCore
+instanceKlass net/jcores/CoreKeeper
+instanceKlass net/xeoh/plugins/base/options/AddPluginsFromOption
+instanceKlass net/xeoh/plugins/base/util/PluginConfigurationUtil
+instanceKlass net/xeoh/plugins/base/impl/PluginManagerImpl$2
+instanceKlass net/xeoh/plugins/base/options/getplugin/OptionPluginSelector
+instanceKlass net/xeoh/plugins/base/util/OptionUtils
+instanceKlass net/xeoh/plugins/base/options/getplugin/OptionCapabilities
+instanceKlass net/xeoh/plugins/base/options/GetPluginOption
+instanceKlass net/xeoh/plugins/base/impl/PluginInformationImpl
+instanceKlass net/xeoh/plugins/base/PluginInformation
+instanceKlass net/xeoh/plugins/informationbroker/InformationListener
+instanceKlass net/xeoh/plugins/informationbroker/InformationItemIdentifier
+instanceKlass net/xeoh/plugins/informationbroker/InformationItem
+instanceKlass net/xeoh/plugins/informationbroker/impl/InformationBrokerImpl
+instanceKlass net/xeoh/plugins/informationbroker/InformationBroker
+instanceKlass net/xeoh/plugins/base/annotations/events/PluginLoaded
+instanceKlass net/xeoh/plugins/base/annotations/Timer
+instanceKlass net/xeoh/plugins/base/annotations/Thread
+instanceKlass net/xeoh/plugins/base/annotations/events/Init
+instanceKlass net/xeoh/plugins/base/annotations/injections/InjectPlugin
+instanceKlass net/xeoh/plugins/bus/messages/BusMessage
+instanceKlass net/xeoh/plugins/bus/ChannelListener
+instanceKlass net/xeoh/plugins/base/Pluglet
+instanceKlass java/util/Timer$1
+instanceKlass java/util/TaskQueue
+instanceKlass java/util/Timer
+instanceKlass net/xeoh/plugins/bus/impl/BusImpl
+instanceKlass net/xeoh/plugins/bus/Bus
+instanceKlass net/xeoh/plugins/base/impl/loader/AbstractLoader
+instanceKlass net/xeoh/plugins/base/impl/registry/PluggableMetaInformation
+instanceKlass net/xeoh/plugins/base/impl/SpawnResult
+instanceKlass net/xeoh/plugins/base/impl/PluginSupervisorImpl
+instanceKlass net/xeoh/plugins/base/PluginSupervisor
+instanceKlass net/xeoh/plugins/base/impl/PluginConfigurationImpl
+instanceKlass net/xeoh/plugins/base/impl/Spawner
+instanceKlass net/xeoh/plugins/base/util/PluginManagerUtil
+instanceKlass org/codehaus/classworlds/DefaultClassRealm
+instanceKlass org/codehaus/classworlds/ClassWorld$1
+instanceKlass org/codehaus/classworlds/ClassRealm
+instanceKlass org/codehaus/classworlds/ClassWorld
+instanceKlass net/xeoh/plugins/base/impl/classpath/ClassPathManager$1
+instanceKlass net/xeoh/plugins/base/impl/classpath/ClassPathManager
+instanceKlass net/xeoh/plugins/base/impl/classpath/locator/ClassPathLocator
+instanceKlass net/jcores/interfaces/functions/F1
+instanceKlass net/xeoh/plugins/base/impl/registry/PluginRegistry
+instanceKlass net/xeoh/plugins/base/impl/classpath/cache/JARCache
+instanceKlass net/xeoh/plugins/base/options/getplugin/PluginSelector
+instanceKlass net/xeoh/plugins/base/Option
+instanceKlass net/xeoh/plugins/base/PluginConfiguration
+instanceKlass net/xeoh/plugins/base/impl/PluginManagerImpl
+instanceKlass net/xeoh/plugins/base/PluginManager
+instanceKlass net/xeoh/plugins/base/impl/PluginManagerFactory
+instanceKlass mage/client/util/DefaultActionCallback
+instanceKlass mage/client/plugins/adapters/MageActionCallback
+instanceKlass mage/cards/action/ActionCallback
+instanceKlass mage/interfaces/plugin/ThemePlugin
+instanceKlass mage/interfaces/plugin/CardPlugin
+instanceKlass net/xeoh/plugins/base/Plugin
+instanceKlass net/xeoh/plugins/base/Pluggable
+instanceKlass mage/client/plugins/MagePlugins
+instanceKlass org/h2/mvstore/db/MVTable$1
+instanceKlass org/h2/index/SpatialIndex
+instanceKlass org/h2/engine/Constants
+instanceKlass java/text/FieldPosition$Delegate
+instanceKlass mage/cards/ExpansionSet
+instanceKlass mage/cards/repository/ExpansionInfo
+instanceKlass com/j256/ormlite/support/GeneratedKeyHolder
+instanceKlass com/j256/ormlite/misc/BaseDaoEnabled
+instanceKlass java/sql/Array
+instanceKlass org/h2/result/ResultExternal
+instanceKlass org/h2/result/LocalResult
+instanceKlass com/j256/ormlite/jdbc/JdbcDatabaseResults
+instanceKlass com/j256/ormlite/stmt/SelectIterator
+instanceKlass com/j256/ormlite/jdbc/TypeValMapper$1
+instanceKlass com/j256/ormlite/jdbc/TypeValMapper
+instanceKlass org/h2/table/Plan$1
+instanceKlass org/h2/table/Plan
+instanceKlass org/h2/command/dml/Optimizer
+instanceKlass com/j256/ormlite/stmt/mapped/BaseMappedStatement
+instanceKlass com/j256/ormlite/stmt/PreparedUpdate
+instanceKlass com/j256/ormlite/stmt/PreparedDelete
+instanceKlass com/j256/ormlite/stmt/ColumnArg
+instanceKlass com/j256/ormlite/stmt/query/ManyClause
+instanceKlass com/j256/ormlite/stmt/query/BaseComparison
+instanceKlass com/j256/ormlite/stmt/query/Comparison
+instanceKlass com/j256/ormlite/stmt/BaseArgumentHolder
+instanceKlass com/j256/ormlite/stmt/ArgumentHolder
+instanceKlass com/j256/ormlite/stmt/query/NeedsFutureClause
+instanceKlass com/j256/ormlite/stmt/query/Clause
+instanceKlass com/j256/ormlite/stmt/Where
+instanceKlass com/j256/ormlite/stmt/PreparedQuery
+instanceKlass com/j256/ormlite/stmt/StatementBuilder
+instanceKlass com/j256/ormlite/jdbc/JdbcCompiledStatement
+instanceKlass sun/nio/ch/FileKey
+instanceKlass sun/nio/ch/FileLockTable
+instanceKlass java/nio/channels/FileLock
+instanceKlass org/h2/mvstore/cache/CacheLongKeyLIRS$Entry
+instanceKlass org/h2/mvstore/cache/CacheLongKeyLIRS$Segment
+instanceKlass org/h2/mvstore/cache/CacheLongKeyLIRS
+instanceKlass org/h2/mvstore/FreeSpaceBitSet
+instanceKlass org/h2/mvstore/FileStore
+instanceKlass org/h2/mvstore/db/MVTableEngine$1
+instanceKlass sun/net/ResourceManager
+instanceKlass org/h2/mvstore/MVStoreTool
+instanceKlass java/lang/Throwable$PrintStreamOrWriter
+instanceKlass java/net/Socket$3
+instanceKlass java/net/Socket$2
+instanceKlass org/h2/value/Transfer
+instanceKlass org/h2/util/SmallMap
+instanceKlass org/h2/server/TcpServerThread
+instanceKlass java/net/Proxy
+instanceKlass sun/net/spi/DefaultProxySelector$3
+instanceKlass sun/net/spi/DefaultProxySelector$NonProxyInfo
+instanceKlass sun/net/NetProperties$1
+instanceKlass sun/net/NetProperties
+instanceKlass sun/net/spi/DefaultProxySelector$1
+instanceKlass java/net/ProxySelector
+instanceKlass java/net/SocksSocketImpl$3
+instanceKlass sun/net/util/IPAddressUtil
+instanceKlass java/net/InetAddress$CacheEntry
+instanceKlass sun/net/InetAddressCachePolicy$2
+instanceKlass sun/net/InetAddressCachePolicy$1
+instanceKlass sun/net/InetAddressCachePolicy
+instanceKlass org/h2/table/PlanItem
+instanceKlass org/h2/index/IndexCondition
+instanceKlass org/h2/index/IndexCursor
+instanceKlass org/h2/table/TableFilter
+instanceKlass org/h2/result/ResultInterface
+instanceKlass java/sql/ParameterMetaData
+instanceKlass java/sql/ResultSetMetaData
+instanceKlass org/h2/expression/ExpressionVisitor
+instanceKlass org/h2/engine/FunctionAlias$JavaMethod
+instanceKlass org/h2/engine/Session$Savepoint
+instanceKlass org/h2/expression/FunctionInfo
+instanceKlass java/util/concurrent/atomic/AtomicReference
+instanceKlass org/h2/mvstore/StreamStore
+instanceKlass org/h2/value/Value$ValueBlob
+instanceKlass org/h2/value/Value$ValueClob
+instanceKlass org/h2/store/LobStorageMap
+instanceKlass org/h2/mvstore/rtree/SpatialKey
+instanceKlass org/h2/mvstore/db/TransactionStore$VersionedValue
+instanceKlass org/h2/engine/MetaRecord
+instanceKlass org/h2/result/Row
+instanceKlass org/h2/mvstore/db/TransactionStore$TransactionMap$2
+instanceKlass org/h2/mvstore/db/MVPrimaryIndex$MVStoreCursor
+instanceKlass org/h2/util/StatementBuilder
+instanceKlass org/h2/expression/ParameterInterface
+instanceKlass org/h2/result/ResultTarget
+instanceKlass org/h2/expression/FunctionCall
+instanceKlass org/h2/table/TableFilter$TableFilterVisitor
+instanceKlass org/h2/command/Command
+instanceKlass org/h2/command/Prepared
+instanceKlass org/h2/command/Parser
+instanceKlass org/h2/mvstore/db/TransactionStore$TransactionMap
+instanceKlass org/h2/mvstore/db/TransactionStore$Transaction
+instanceKlass org/h2/index/IndexType
+instanceKlass org/h2/table/IndexColumn
+instanceKlass org/h2/index/Cursor
+instanceKlass org/h2/mvstore/db/MVIndex
+instanceKlass org/h2/index/Index
+instanceKlass org/h2/api/ErrorCode
+instanceKlass java/util/zip/ZipUtils
+instanceKlass java/io/ObjectStreamConstants
+instanceKlass java/io/ObjectInput
+instanceKlass org/h2/util/JdbcUtils
+instanceKlass org/h2/value/DataType
+instanceKlass org/h2/expression/Expression
+instanceKlass org/h2/table/ColumnResolver
+instanceKlass org/h2/table/Column
+instanceKlass org/h2/command/ddl/CreateTableData
+instanceKlass org/h2/engine/UndoLog
+instanceKlass org/h2/mvstore/CursorPos
+instanceKlass org/h2/mvstore/Cursor
+instanceKlass org/h2/mvstore/db/TransactionStore$ArrayType
+instanceKlass org/h2/mvstore/db/TransactionStore$VersionedValueType
+instanceKlass org/h2/mvstore/type/ObjectDataType$AutoDetectDataType
+instanceKlass org/h2/mvstore/type/ObjectDataType
+instanceKlass org/h2/mvstore/MVMap$Builder
+instanceKlass org/h2/mvstore/db/ValueDataType
+instanceKlass org/h2/mvstore/db/TransactionStore
+instanceKlass org/h2/mvstore/DataUtils
+instanceKlass org/h2/mvstore/Page
+instanceKlass org/h2/mvstore/ConcurrentArrayList
+instanceKlass org/h2/mvstore/type/StringDataType
+instanceKlass org/h2/mvstore/MVMap$MapBuilder
+instanceKlass org/h2/mvstore/MVStore
+instanceKlass org/h2/mvstore/type/DataType
+instanceKlass org/h2/mvstore/db/MVTableEngine$Store
+instanceKlass org/h2/mvstore/MVStore$Builder
+instanceKlass org/h2/engine/DbObjectBase
+instanceKlass org/h2/mvstore/db/MVTableEngine
+instanceKlass org/h2/api/TableEngine
+instanceKlass org/h2/util/NetUtils
+instanceKlass org/h2/server/TcpServer
+instanceKlass org/h2/server/Service
+instanceKlass org/h2/util/Tool
+instanceKlass org/h2/server/ShutdownHandler
+instanceKlass sun/util/locale/provider/TimeZoneNameUtility$TimeZoneNameGetter
+instanceKlass sun/util/locale/provider/TimeZoneNameUtility
+instanceKlass sun/nio/cs/Surrogate
+instanceKlass sun/nio/cs/Surrogate$Parser
+instanceKlass org/h2/util/IOUtils
+instanceKlass sun/security/provider/ByteArrayAccess
+instanceKlass sun/security/provider/SeedGenerator
+instanceKlass org/h2/util/MathUtils$1
+instanceKlass sun/security/jca/GetInstance$Instance
+instanceKlass java/security/MessageDigestSpi
+instanceKlass java/security/Provider$UString
+instanceKlass java/security/Provider$Service
+instanceKlass sun/security/provider/NativePRNG$NonBlocking
+instanceKlass sun/security/provider/NativePRNG$Blocking
+instanceKlass sun/security/provider/NativePRNG
+instanceKlass sun/security/provider/SunEntries$1
+instanceKlass sun/security/provider/SunEntries
+instanceKlass sun/security/jca/ProviderConfig$2
+instanceKlass java/security/Security$1
+instanceKlass java/security/Security
+instanceKlass sun/security/jca/ProviderList$2
+instanceKlass sun/misc/FDBigInteger
+instanceKlass java/security/Provider$EngineDescription
+instanceKlass java/security/Provider$ServiceKey
+instanceKlass sun/security/jca/ProviderConfig
+instanceKlass sun/security/jca/ProviderList
+instanceKlass sun/security/jca/Providers
+instanceKlass sun/security/jca/GetInstance
+instanceKlass java/security/SecureRandomSpi
+instanceKlass org/h2/message/Trace
+instanceKlass org/h2/message/TraceSystem
+instanceKlass org/h2/message/TraceWriter
+instanceKlass org/h2/util/TempFileDeleter
+instanceKlass org/h2/engine/Mode
+instanceKlass org/h2/util/BitField
+instanceKlass org/h2/schema/SchemaObject
+instanceKlass org/h2/engine/DbObject
+instanceKlass org/h2/result/SearchRow
+instanceKlass org/h2/engine/Database
+instanceKlass org/h2/compress/CompressLZF
+instanceKlass org/h2/compress/Compressor
+instanceKlass org/h2/store/fs/FileMemData
+instanceKlass org/h2/store/fs/FilePath
+instanceKlass org/h2/store/fs/FileUtils
+instanceKlass org/h2/store/FileLock
+instanceKlass org/h2/engine/Engine
+instanceKlass org/h2/engine/SessionFactory
+instanceKlass org/h2/command/CommandInterface
+instanceKlass org/h2/store/LobStorageInterface
+instanceKlass org/h2/engine/SessionWithState
+instanceKlass org/h2/engine/SessionInterface
+instanceKlass org/h2/store/DataHandler
+instanceKlass org/h2/value/CompareMode
+instanceKlass org/h2/util/StringUtils
+instanceKlass org/h2/engine/SettingsBase
+instanceKlass java/util/Random
+instanceKlass org/h2/util/MathUtils
+instanceKlass org/h2/engine/SysProperties
+instanceKlass org/h2/command/dml/SetTypes
+instanceKlass org/h2/engine/ConnectionInfo
+instanceKlass java/sql/CallableStatement
+instanceKlass java/sql/NClob
+instanceKlass java/sql/Clob
+instanceKlass java/sql/Blob
+instanceKlass org/h2/value/Value
+instanceKlass java/sql/DatabaseMetaData
+instanceKlass java/sql/PreparedStatement
+instanceKlass java/sql/Statement
+instanceKlass java/sql/ResultSet
+instanceKlass org/h2/message/TraceObject
+instanceKlass org/h2/util/New
+instanceKlass org/h2/util/Utils
+instanceKlass org/h2/upgrade/DbUpgrade
+instanceKlass com/j256/ormlite/misc/VersionUtils
+instanceKlass com/j256/ormlite/jdbc/JdbcDatabaseConnection$OneLongWrapper
+instanceKlass com/j256/ormlite/support/CompiledStatement
+instanceKlass java/sql/Savepoint
+instanceKlass com/j256/ormlite/support/DatabaseResults
+instanceKlass com/j256/ormlite/db/BaseDatabaseType$1
+instanceKlass com/j256/ormlite/dao/GenericRawResults
+instanceKlass com/j256/ormlite/dao/RawRowMapper
+instanceKlass com/j256/ormlite/stmt/StatementExecutor
+instanceKlass com/j256/ormlite/field/DataPersisterManager
+instanceKlass com/j256/ormlite/field/DatabaseField
+instanceKlass com/j256/ormlite/field/types/BaseDateType$DateStringFormatConfig
+instanceKlass com/j256/ormlite/field/DataPersister
+instanceKlass com/j256/ormlite/field/DatabaseFieldConfig
+instanceKlass com/j256/ormlite/dao/BaseForeignCollection
+instanceKlass com/j256/ormlite/table/DatabaseTableConfig
+instanceKlass com/j256/ormlite/table/TableInfo
+instanceKlass com/j256/ormlite/dao/ForeignCollection
+instanceKlass com/j256/ormlite/dao/CloseableWrappedIterable
+instanceKlass com/j256/ormlite/dao/ObjectCache
+instanceKlass com/j256/ormlite/stmt/PreparedStmt
+instanceKlass com/j256/ormlite/stmt/GenericRowMapper
+instanceKlass com/j256/ormlite/dao/CloseableIterator
+instanceKlass com/j256/ormlite/dao/BaseDaoImpl
+instanceKlass java/lang/reflect/WeakCache$Value
+instanceKlass sun/misc/ProxyGenerator$ExceptionTableEntry
+instanceKlass sun/misc/ProxyGenerator$PrimitiveTypeInfo
+instanceKlass sun/misc/ProxyGenerator$FieldInfo
+instanceKlass sun/misc/ProxyGenerator$ConstantPool$Entry
+instanceKlass sun/misc/ProxyGenerator$MethodInfo
+instanceKlass sun/misc/ProxyGenerator$ProxyMethod
+instanceKlass sun/misc/ProxyGenerator$ConstantPool
+instanceKlass sun/misc/ProxyGenerator
+instanceKlass java/lang/reflect/WeakCache$Factory
+instanceKlass java/util/function/Supplier
+instanceKlass sun/reflect/annotation/AnnotationInvocationHandler
+instanceKlass sun/reflect/annotation/AnnotationParser$1
+instanceKlass java/lang/annotation/Target
+instanceKlass java/lang/annotation/Inherited
+instanceKlass java/lang/annotation/Retention
+instanceKlass sun/reflect/annotation/ExceptionProxy
+instanceKlass sun/reflect/annotation/AnnotationType$1
+instanceKlass com/j256/ormlite/table/DatabaseTable
+instanceKlass com/j256/ormlite/dao/DaoManager$ClassConnectionSource
+instanceKlass com/j256/ormlite/dao/Dao
+instanceKlass com/j256/ormlite/dao/CloseableIterable
+instanceKlass com/j256/ormlite/dao/DaoManager
+instanceKlass com/j256/ormlite/field/FieldType
+instanceKlass com/j256/ormlite/table/TableUtils
+instanceKlass mage/cards/repository/DatabaseVersion
+instanceKlass mage/cards/repository/RepositoryUtil
+instanceKlass java/util/concurrent/CopyOnWriteArrayList$COWIterator
+instanceKlass java/sql/DriverInfo
+instanceKlass java/sql/DriverManager$2
+instanceKlass java/sql/DriverManager$1
+instanceKlass java/sql/DriverManager
+instanceKlass java/sql/Connection
+instanceKlass java/sql/Wrapper
+instanceKlass org/h2/Driver
+instanceKlass java/sql/Driver
+instanceKlass com/j256/ormlite/field/BaseFieldConverter
+instanceKlass com/j256/ormlite/field/FieldConverter
+instanceKlass com/j256/ormlite/db/BaseDatabaseType
+instanceKlass com/j256/ormlite/db/DatabaseType
+instanceKlass com/j256/ormlite/db/DatabaseTypeUtils
+instanceKlass com/j256/ormlite/logger/Logger
+instanceKlass com/j256/ormlite/logger/Slf4jLoggingLog$1
+instanceKlass com/j256/ormlite/logger/Slf4jLoggingLog
+instanceKlass com/j256/ormlite/logger/LocalLog
+instanceKlass com/j256/ormlite/logger/Log
+instanceKlass com/j256/ormlite/logger/LoggerFactory
+instanceKlass com/j256/ormlite/jdbc/JdbcDatabaseConnection
+instanceKlass com/j256/ormlite/support/DatabaseConnection
+instanceKlass com/j256/ormlite/support/BaseConnectionSource
+instanceKlass com/j256/ormlite/support/ConnectionSource
+instanceKlass com/sun/imageio/plugins/common/ReaderUtil
+instanceKlass sun/java2d/cmm/CMSManager
+instanceKlass com/sun/imageio/plugins/png/PNGImageDataEnumeration
+instanceKlass java/io/RandomAccessFile$1
+instanceKlass javax/imageio/metadata/IIOMetadata
+instanceKlass com/sun/imageio/stream/CloseableDisposerRecord
+instanceKlass org/mage/plugins/card/constants/Constants
+instanceKlass sun/nio/fs/BasicFileAttributesHolder
+instanceKlass java/nio/file/Files$3
+instanceKlass java/nio/file/FileTreeWalker$Event
+instanceKlass sun/nio/fs/WindowsDirectoryStream$WindowsDirectoryIterator
+instanceKlass java/nio/file/FileTreeWalker$DirectoryNode
+instanceKlass sun/nio/fs/WindowsDirectoryStream
+instanceKlass java/nio/file/DirectoryStream
+instanceKlass java/nio/file/Files$AcceptAllFilter
+instanceKlass java/nio/file/DirectoryStream$Filter
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$BackupResult
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$CompletionStatus
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$AclInformation
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$Account
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$VolumeInformation
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstStream
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$FirstFile
+instanceKlass sun/nio/fs/WindowsNativeDispatcher$1
+instanceKlass sun/nio/fs/WindowsNativeDispatcher
+instanceKlass sun/nio/fs/NativeBuffer$Deallocator
+instanceKlass sun/nio/fs/NativeBuffer
+instanceKlass sun/nio/fs/NativeBuffers
+instanceKlass sun/nio/fs/WindowsFileAttributes
+instanceKlass java/nio/file/attribute/DosFileAttributes
+instanceKlass sun/nio/fs/AbstractBasicFileAttributeView
+instanceKlass sun/nio/fs/DynamicFileAttributeView
+instanceKlass sun/nio/fs/WindowsFileAttributeViews
+instanceKlass java/nio/file/attribute/BasicFileAttributeView
+instanceKlass java/nio/file/attribute/FileAttributeView
+instanceKlass java/nio/file/attribute/AttributeView
+instanceKlass java/nio/file/attribute/BasicFileAttributes
+instanceKlass java/nio/file/CopyOption
+instanceKlass java/nio/file/OpenOption
+instanceKlass java/util/RegularEnumSet$EnumSetIterator
+instanceKlass java/nio/file/FileTreeWalker
+instanceKlass java/nio/file/Files
+instanceKlass java/nio/file/SimpleFileVisitor
+instanceKlass sun/nio/fs/AbstractPath
+instanceKlass java/nio/file/Paths
+instanceKlass sun/nio/fs/WindowsFileSystem$2
+instanceKlass java/nio/file/PathMatcher
+instanceKlass java/util/regex/ASCII
+instanceKlass sun/nio/fs/Globs
+instanceKlass java/net/URI$Parser
+instanceKlass java/net/URI
+instanceKlass sun/nio/fs/Util
+instanceKlass sun/nio/fs/WindowsPathParser$Result
+instanceKlass sun/nio/fs/WindowsPathParser
+instanceKlass java/nio/file/FileSystem
+instanceKlass java/nio/file/spi/FileSystemProvider
+instanceKlass sun/nio/fs/DefaultFileSystemProvider
+instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder$1
+instanceKlass java/nio/file/FileSystems$DefaultFileSystemHolder
+instanceKlass java/nio/file/FileSystems
+instanceKlass java/nio/file/FileVisitor
+instanceKlass org/mage/card/arcane/ManaSymbols
+instanceKlass java/awt/Polygon
+instanceKlass com/google/common/collect/MapMaker$StrategyImpl$FutureValueReference
+instanceKlass org/mage/card/arcane/CardRenderer
+instanceKlass java/awt/MediaEntry
+instanceKlass java/awt/MediaTracker
+instanceKlass java/awt/image/BufferStrategy
+instanceKlass javax/swing/ImageIcon$2
+instanceKlass javax/swing/ImageIcon$1
+instanceKlass javax/swing/ImageIcon
+instanceKlass com/mortennobel/imagescaling/ResampleOp$2
+instanceKlass com/mortennobel/imagescaling/ResampleOp$1
+instanceKlass com/mortennobel/imagescaling/ResampleOp$SubSamplingData
+instanceKlass com/mortennobel/imagescaling/ImageUtils
+instanceKlass com/mortennobel/imagescaling/TriangleFilter
+instanceKlass com/mortennobel/imagescaling/MitchellFilter
+instanceKlass com/mortennobel/imagescaling/Lanczos3Filter
+instanceKlass com/mortennobel/imagescaling/HermiteFilter
+instanceKlass com/mortennobel/imagescaling/BSplineFilter
+instanceKlass com/mortennobel/imagescaling/BoxFilter
+instanceKlass com/mortennobel/imagescaling/BiCubicFilter
+instanceKlass com/mortennobel/imagescaling/BellFilter
+instanceKlass com/mortennobel/imagescaling/ResampleFilter
+instanceKlass com/mortennobel/imagescaling/ResampleFilters
+instanceKlass com/mortennobel/imagescaling/DimensionConstrain
+instanceKlass com/mortennobel/imagescaling/AdvancedResizeOp
+instanceKlass java/awt/image/BufferedImageOp
+instanceKlass com/google/common/base/FinalizableReferenceQueue$DirectLoader
+instanceKlass com/google/common/base/FinalizableReferenceQueue$DecoupledLoader
+instanceKlass com/google/common/base/FinalizableReferenceQueue$SystemLoader
+instanceKlass com/google/common/base/FinalizableReferenceQueue$FinalizerLoader
+instanceKlass java/util/logging/LogManager$5
+instanceKlass java/util/logging/Logger$1
+instanceKlass java/util/logging/LogManager$LoggerContext$1
+instanceKlass java/util/logging/LogManager$3
+instanceKlass java/util/logging/LogManager$2
+instanceKlass java/util/logging/LogManager$LogNode
+instanceKlass java/util/logging/LogManager$LoggerContext
+instanceKlass java/util/logging/LogManager$1
+instanceKlass java/util/logging/LogManager
+instanceKlass java/util/concurrent/CopyOnWriteArrayList
+instanceKlass java/util/logging/Logger$LoggerBundle
+instanceKlass java/util/logging/Level$KnownLevel
+instanceKlass java/util/logging/Level
+instanceKlass java/util/logging/Handler
+instanceKlass java/util/logging/Logger
+instanceKlass com/google/common/base/FinalizableReferenceQueue
+instanceKlass com/google/common/collect/MapMaker$QueueHolder
+instanceKlass mage/client/util/TransformedImageCache$$Lambda$66
+instanceKlass com/google/common/collect/CustomConcurrentHashMap
+instanceKlass mage/client/util/ImageCaches
+instanceKlass com/google/common/collect/CustomConcurrentHashMap$Impl$InternalsImpl
+instanceKlass java/util/concurrent/atomic/AtomicReferenceArray
+instanceKlass com/google/common/collect/CustomConcurrentHashMap$Internals
+instanceKlass java/util/TimerTask
+instanceKlass com/google/common/collect/MapMaker$StrategyImpl
+instanceKlass com/google/common/collect/CustomConcurrentHashMap$ComputingStrategy
+instanceKlass com/google/common/collect/CustomConcurrentHashMap$Strategy
+instanceKlass mage/client/util/TransformedImageCache$$Lambda$65
+instanceKlass com/google/common/base/Function
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass mage/client/util/TransformedImageCache$Key
+instanceKlass com/google/common/collect/CustomConcurrentHashMap$Builder
+instanceKlass com/google/common/collect/MapMaker$StrongEntry
+instanceKlass com/google/common/base/FinalizableReference
+instanceKlass com/google/common/collect/MapMaker$ReferenceEntry
+instanceKlass com/google/common/collect/MapMaker$1
+instanceKlass com/google/common/collect/MapMaker$ValueReference
+instanceKlass com/google/common/collect/MapMaker
+instanceKlass mage/client/util/TransformedImageCache
+instanceKlass sun/awt/image/MultiResolutionImage
+instanceKlass sun/awt/image/BufImgSurfaceData$ICMColorData
+instanceKlass mage/client/util/gui/BufferedImageBuilder
+instanceKlass java/awt/image/BufferedImage$1
+instanceKlass sun/awt/image/NativeLibLoader$1
+instanceKlass sun/awt/image/NativeLibLoader
+instanceKlass java/awt/image/SampleModel
+instanceKlass java/awt/image/Raster
+instanceKlass java/awt/image/DataBuffer$1
+instanceKlass sun/awt/image/SunWritableRaster$DataStealer
+instanceKlass java/awt/image/DataBuffer
+instanceKlass com/sun/imageio/plugins/jpeg/JPEG$JCS
+instanceKlass com/sun/imageio/plugins/jpeg/ImageTypeIterator
+instanceKlass com/sun/imageio/plugins/jpeg/ImageTypeProducer
+instanceKlass javax/imageio/IIOParam
+instanceKlass com/sun/imageio/plugins/jpeg/JPEGImageReader$JPEGReaderDisposerRecord
+instanceKlass com/sun/imageio/plugins/jpeg/JPEGImageReader$CallBackLock
+instanceKlass javax/imageio/plugins/jpeg/JPEGHuffmanTable
+instanceKlass javax/imageio/plugins/jpeg/JPEGQTable
+instanceKlass com/sun/imageio/plugins/jpeg/JPEGImageReader$1
+instanceKlass javax/imageio/ImageIO$ImageReaderIterator
+instanceKlass javax/imageio/spi/FilterIterator
+instanceKlass javax/imageio/ImageIO$CanDecodeInputFilter
+instanceKlass javax/imageio/spi/ServiceRegistry$Filter
+instanceKlass javax/imageio/stream/MemoryCacheImageInputStream$StreamDisposerRecord
+instanceKlass javax/imageio/stream/MemoryCache
+instanceKlass javax/imageio/stream/ImageInputStreamImpl
+instanceKlass javax/imageio/spi/PartialOrderIterator
+instanceKlass javax/imageio/ImageIO$CacheInfo
+instanceKlass javax/imageio/ImageTypeSpecifier
+instanceKlass javax/imageio/ImageWriter
+instanceKlass javax/imageio/ImageTranscoder
+instanceKlass javax/imageio/metadata/IIOMetadataFormat
+instanceKlass javax/imageio/ImageReader
+instanceKlass javax/imageio/spi/IIORegistry$1
+instanceKlass com/sun/imageio/plugins/jpeg/JPEG
+instanceKlass javax/imageio/stream/ImageOutputStream
+instanceKlass javax/imageio/spi/DigraphNode
+instanceKlass javax/imageio/stream/ImageInputStream
+instanceKlass javax/imageio/spi/SubRegistry
+instanceKlass javax/imageio/spi/IIOServiceProvider
+instanceKlass javax/imageio/spi/RegisterableService
+instanceKlass javax/imageio/spi/ServiceRegistry
+instanceKlass javax/imageio/ImageIO
+instanceKlass org/mage/card/arcane/UI
+instanceKlass mage/client/util/ImageHelper
+instanceKlass sun/awt/GlobalCursorManager$NativeUpdater
+instanceKlass sun/awt/GlobalCursorManager
+instanceKlass sun/java2d/StateTrackableDelegate$1
+instanceKlass sun/java2d/d3d/D3DBlitLoops
+instanceKlass sun/java2d/loops/ProcessPath$DrawHandler
+instanceKlass sun/java2d/pipe/BufferedRenderPipe$AAParallelogramPipe
+instanceKlass sun/java2d/pipe/BufferedRenderPipe
+instanceKlass sun/java2d/pipe/hw/AccelSurface
+instanceKlass sun/font/SunFontManager$5
+instanceKlass sun/font/SunFontManager$FamilyDescription
+instanceKlass sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar
+instanceKlass sun/util/locale/InternalLocaleBuilder
+instanceKlass sun/util/locale/StringTokenIterator
+instanceKlass sun/util/locale/ParseStatus
+instanceKlass sun/awt/im/InputMethodAdapter
+instanceKlass java/awt/im/spi/InputMethod
+instanceKlass java/awt/im/spi/InputMethodContext
+instanceKlass javax/swing/text/JTextComponent$KeyBinding
+instanceKlass java/awt/print/Printable
+instanceKlass javax/swing/text/NavigationFilter
+instanceKlass javax/swing/TransferHandler$DropLocation
+instanceKlass javax/print/attribute/PrintRequestAttributeSet
+instanceKlass javax/print/attribute/AttributeSet
+instanceKlass javax/print/PrintService
+instanceKlass javax/swing/InputVerifier
+instanceKlass java/awt/im/InputMethodRequests
+instanceKlass java/awt/image/ImageProducer
+instanceKlass java/awt/im/InputContext
+instanceKlass java/awt/Event
+instanceKlass org/jdesktop/layout/Baseline
+instanceKlass org/jdesktop/layout/GroupLayout$SpringDelta
+instanceKlass java/awt/GridBagLayoutInfo
+instanceKlass javax/swing/LayoutStyle
+instanceKlass org/jdesktop/layout/LayoutStyle
+instanceKlass javax/swing/plaf/synth/SynthGraphicsUtils$SynthIconWrapper
+instanceKlass org/jdesktop/layout/GroupLayout$AutopaddingMatch
+instanceKlass java/awt/SystemColor$$Lambda$64
+instanceKlass sun/awt/AWTAccessor$SystemColorAccessor
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/awt/peer/DialogPeer
+instanceKlass sun/awt/NullComponentPeer
+instanceKlass java/awt/peer/LightweightPeer
+instanceKlass sun/awt/im/ExecutableInputMethodManager$3
+instanceKlass sun/awt/im/InputMethodLocator
+instanceKlass sun/awt/windows/WInputMethodDescriptor
+instanceKlass java/awt/im/spi/InputMethodDescriptor
+instanceKlass sun/awt/im/InputMethodManager
+instanceKlass sun/awt/FontConfiguration$2
+instanceKlass sun/awt/NativeLibLoader$1
+instanceKlass sun/awt/NativeLibLoader
+instanceKlass sun/awt/PlatformFont
+instanceKlass java/awt/peer/FontPeer
+instanceKlass javax/swing/RepaintManager$2
+instanceKlass sun/awt/windows/WComponentPeer$2
+instanceKlass sun/awt/windows/WColor
+instanceKlass sun/java2d/StateTracker$2
+instanceKlass sun/java2d/StateTracker$1
+instanceKlass sun/java2d/StateTracker
+instanceKlass sun/java2d/SurfaceDataProxy
+instanceKlass sun/awt/image/SurfaceManager$FlushableCacheData
+instanceKlass sun/java2d/DefaultDisposerRecord
+instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec
+instanceKlass sun/java2d/loops/RenderLoops
+instanceKlass sun/java2d/windows/GDIRenderer
+instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$2
+instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr$1
+instanceKlass sun/java2d/loops/GeneralRenderer
+instanceKlass sun/java2d/loops/CustomComponent
+instanceKlass sun/java2d/pipe/ValidatePipe
+instanceKlass java/awt/BasicStroke
+instanceKlass java/awt/Stroke
+instanceKlass java/awt/AlphaComposite
+instanceKlass sun/awt/ConstrainableGraphics
+instanceKlass sun/java2d/loops/CompositeType
+instanceKlass sun/java2d/loops/GraphicsPrimitiveMgr
+instanceKlass sun/java2d/loops/GraphicsPrimitive
+instanceKlass sun/java2d/loops/XORComposite
+instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$63
+instanceKlass sun/java2d/d3d/D3DScreenUpdateManager$$Lambda$62
+instanceKlass sun/java2d/ScreenUpdateManager
+instanceKlass sun/awt/im/InputMethodWindow
+instanceKlass sun/awt/ExtendedKeyCodes
+instanceKlass sun/awt/RepaintArea
+instanceKlass sun/awt/windows/WWindowPeer$GuiDisposedListener
+instanceKlass sun/awt/windows/WWindowPeer$ActiveWindowListener
+instanceKlass java/awt/peer/CanvasPeer
+instanceKlass java/awt/peer/PanelPeer
+instanceKlass java/awt/peer/FramePeer
+instanceKlass java/awt/peer/WindowPeer
+instanceKlass java/awt/peer/ContainerPeer
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$61
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$60
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$59
+instanceKlass java/text/BreakIterator
+instanceKlass javax/swing/text/GlyphView$GlyphPainter
+instanceKlass javax/swing/SizeRequirements
+instanceKlass javax/swing/text/TabableView
+instanceKlass javax/swing/text/FlowView$FlowStrategy
+instanceKlass javax/swing/text/html/StyleSheet$1
+instanceKlass javax/swing/text/html/CSSBorder$StrokePainter
+instanceKlass javax/swing/text/html/CSSBorder$SolidPainter
+instanceKlass javax/swing/text/html/CSSBorder$NullPainter
+instanceKlass javax/swing/text/html/CSSBorder$BorderPainter
+instanceKlass javax/swing/text/html/StyleSheet$BoxPainter
+instanceKlass javax/swing/text/html/StyleSheet$SearchBuffer
+instanceKlass javax/swing/text/html/MuxingAttributeSet
+instanceKlass javax/swing/text/GapContent$UndoPosRef
+instanceKlass javax/swing/text/DefaultStyledDocument$ElementBuffer$ElemChanges
+instanceKlass javax/swing/text/DefaultStyledDocument$ElementSpec
+instanceKlass javax/swing/text/html/parser/ContentModelState
+instanceKlass javax/swing/text/html/parser/TagStack
+instanceKlass javax/swing/text/html/parser/TagElement
+instanceKlass javax/swing/text/html/parser/Parser
+instanceKlass javax/swing/text/html/HTMLDocument$HTMLReader$TagAction
+instanceKlass javax/swing/text/html/HTMLEditorKit$ParserCallback
+instanceKlass javax/swing/text/html/parser/AttributeList
+instanceKlass javax/swing/text/html/parser/ContentModel
+instanceKlass javax/swing/text/html/parser/ParserDelegator$1
+instanceKlass javax/swing/text/html/parser/Entity
+instanceKlass javax/swing/text/html/parser/Element
+instanceKlass javax/swing/text/html/parser/DTD
+instanceKlass javax/swing/text/html/parser/DTDConstants
+instanceKlass javax/swing/text/html/HTMLEditorKit$Parser
+instanceKlass javax/swing/text/DefaultStyledDocument$ElementBuffer
+instanceKlass javax/swing/text/StyledDocument
+instanceKlass javax/swing/text/html/CSS$ShorthandMarginParser
+instanceKlass javax/swing/text/html/CSS$LengthUnit
+instanceKlass javax/swing/text/html/HTMLEditorKit$1
+instanceKlass javax/swing/text/html/CSSParser
+instanceKlass javax/swing/text/html/StyleSheet$CssParser
+instanceKlass javax/swing/text/html/CSSParser$CSSParserCallback
+instanceKlass javax/swing/text/html/StyleSheet$SelectorMapping
+instanceKlass javax/swing/text/html/CSS$CssValue
+instanceKlass javax/swing/text/html/CSS$Value
+instanceKlass javax/swing/text/html/CSS$Attribute
+instanceKlass javax/swing/text/html/CSS
+instanceKlass javax/swing/text/StyledEditorKit$AttributeTracker
+instanceKlass javax/swing/text/html/HTML$Attribute
+instanceKlass javax/swing/text/html/HTML
+instanceKlass javax/swing/text/html/HTML$Tag
+instanceKlass javax/swing/text/StyledEditorKit$StyledViewFactory
+instanceKlass javax/swing/text/html/HTMLEditorKit$HTMLFactory
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$58
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$57
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$56
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$55
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$54
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$53
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$52
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$51
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$50
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$49
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$48
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$47
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$46
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$45
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$44
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$43
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$42
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$41
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$40
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$39
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$38
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$37
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$36
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$35
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$34
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$33
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$32
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$31
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$30
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$29
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$28
+instanceKlass java/awt/GridLayout
+instanceKlass java/awt/GridBagConstraints
+instanceKlass java/awt/GridBagLayout
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$27
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$26
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$25
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$24
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$23
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$22
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$21
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$20
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$19
+instanceKlass org/jdesktop/layout/GroupLayout$ComponentInfo
+instanceKlass org/jdesktop/layout/GroupLayout
+instanceKlass mage/client/dialog/PreferencesDialog$$Lambda$18
+instanceKlass java/awt/PointerInfo
+instanceKlass sun/awt/DefaultMouseInfoPeer
+instanceKlass java/awt/peer/MouseInfoPeer
+instanceKlass java/awt/MouseInfo
+instanceKlass java/awt/Component$2
+instanceKlass javax/swing/plaf/basic/BasicGraphicsUtils
+instanceKlass javax/swing/plaf/basic/BasicSliderUI$ScrollListener
+instanceKlass javax/swing/plaf/basic/BasicSliderUI$Handler
+instanceKlass javax/swing/JSlider$ModelListener
+instanceKlass javax/swing/plaf/synth/SynthTabbedPaneUI$1
+instanceKlass javax/swing/plaf/basic/BasicTabbedPaneUI$Handler
+instanceKlass javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout
+instanceKlass javax/swing/JTabbedPane$ModelListener
+instanceKlass sun/awt/shell/Win32ShellFolder2$FolderDisposer$1
+instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$DoChangeContents
+instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$LoadFilesThread$1
+instanceKlass sun/awt/shell/ShellFolder$1
+instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$4
+instanceKlass javax/swing/event/UndoableEditListener
+instanceKlass javax/swing/text/DefaultCaret$1
+instanceKlass javax/swing/TimerQueue$1
+instanceKlass javax/swing/TimerQueue
+instanceKlass javax/swing/text/AbstractDocument$UndoRedoDocumentEvent
+instanceKlass javax/swing/event/DocumentEvent$ElementChange
+instanceKlass javax/swing/text/SegmentCache
+instanceKlass javax/swing/text/Utilities
+instanceKlass javax/swing/text/Segment
+instanceKlass java/text/CharacterIterator
+instanceKlass javax/swing/event/DocumentEvent$EventType
+instanceKlass javax/swing/event/DocumentEvent
+instanceKlass javax/swing/undo/AbstractUndoableEdit
+instanceKlass javax/swing/undo/UndoableEdit
+instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$1
+instanceKlass sun/font/StandardGlyphVector$GlyphStrike
+instanceKlass java/awt/font/GlyphVector
+instanceKlass sun/awt/shell/Win32ShellFolder2$13
+instanceKlass javax/swing/filechooser/WindowsFileSystemView$1
+instanceKlass sun/awt/shell/Win32ShellFolder2$11
+instanceKlass sun/awt/shell/Win32ShellFolder2$ColumnComparator$1
+instanceKlass sun/awt/shell/Win32ShellFolder2$18
+instanceKlass sun/awt/shell/Win32ShellFolder2$5
+instanceKlass sun/awt/shell/Win32ShellFolder2$9
+instanceKlass sun/awt/shell/Win32ShellFolder2$ColumnComparator
+instanceKlass sun/awt/shell/Win32ShellFolder2$16
+instanceKlass sun/awt/shell/Win32ShellFolderManager2$1
+instanceKlass sun/awt/shell/Win32ShellFolder2$4
+instanceKlass sun/awt/shell/Win32ShellFolder2$2
+instanceKlass sun/awt/shell/Win32ShellFolder2$12
+instanceKlass sun/awt/shell/Win32ShellFolder2$8
+instanceKlass sun/awt/shell/Win32ShellFolder2$10
+instanceKlass sun/font/CMap
+instanceKlass sun/font/T2KFontScaler$1
+instanceKlass sun/font/FontScaler
+instanceKlass sun/font/TrueTypeFont$DirectoryEntry
+instanceKlass java/nio/DirectByteBuffer$Deallocator
+instanceKlass sun/nio/ch/Util$BufferCache
+instanceKlass sun/nio/ch/Util$2
+instanceKlass sun/nio/ch/Util
+instanceKlass sun/nio/ch/IOStatus
+instanceKlass sun/nio/ch/NativeThread
+instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel$1
+instanceKlass sun/nio/ch/FileDispatcherImpl$1
+instanceKlass sun/nio/ch/NativeDispatcher
+instanceKlass sun/nio/ch/NativeThreadSet
+instanceKlass sun/nio/ch/IOUtil$1
+instanceKlass sun/nio/ch/IOUtil
+instanceKlass java/nio/file/attribute/FileAttribute
+instanceKlass java/nio/channels/spi/AbstractInterruptibleChannel
+instanceKlass java/nio/channels/InterruptibleChannel
+instanceKlass java/nio/channels/ScatteringByteChannel
+instanceKlass java/nio/channels/GatheringByteChannel
+instanceKlass java/nio/channels/SeekableByteChannel
+instanceKlass java/nio/channels/ByteChannel
+instanceKlass java/nio/channels/WritableByteChannel
+instanceKlass java/nio/channels/ReadableByteChannel
+instanceKlass java/nio/channels/Channel
+instanceKlass java/io/RandomAccessFile
+instanceKlass java/io/DataOutput
+instanceKlass sun/font/TrueTypeFont$1
+instanceKlass sun/font/TrueTypeFont$TTDisposerRecord
+instanceKlass sun/font/StrikeCache$DisposableStrike
+instanceKlass sun/font/FontStrikeDisposer
+instanceKlass sun/java2d/Disposer$PollDisposable
+instanceKlass sun/font/FontStrikeDesc
+instanceKlass sun/font/FontDesignMetrics$MetricsKey
+instanceKlass java/awt/FontMetrics
+instanceKlass sun/swing/FilePane$Handler
+instanceKlass javax/swing/plaf/basic/BasicFileChooserUI$Handler
+instanceKlass sun/swing/FilePane$DirectoriesFirstComparatorWrapper
+instanceKlass javax/swing/RowSorter$SortKey
+instanceKlass sun/swing/FilePane$DetailsTableRowSorter$1
+instanceKlass javax/swing/DefaultRowSorter$ModelWrapper
+instanceKlass javax/swing/table/TableRowSorter$ComparableComparator
+instanceKlass javax/swing/RowSorter
+instanceKlass sun/awt/shell/ShellFolderColumnInfo
+instanceKlass javax/swing/table/AbstractTableModel
+instanceKlass javax/swing/table/TableModel
+instanceKlass sun/swing/FilePane$5
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUI$1
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUI$SynthFCPropertyChangeListener
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$ButtonAreaLayout
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$FilterComboBoxRenderer
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$2
+instanceKlass javax/accessibility/AccessibleBundle
+instanceKlass sun/awt/shell/Win32ShellFolder2$6
+instanceKlass sun/awt/shell/Win32ShellFolder2$1
+instanceKlass sun/awt/shell/Win32ShellFolder2$FolderDisposer
+instanceKlass java/util/concurrent/locks/LockSupport
+instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$$Lambda$17
+instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$3
+instanceKlass java/util/concurrent/FutureTask$WaitNode
+instanceKlass java/util/concurrent/FutureTask
+instanceKlass sun/awt/shell/Win32ShellFolder2$7
+instanceKlass java/util/concurrent/Callable
+instanceKlass sun/awt/shell/ShellFolder$4
+instanceKlass sun/awt/shell/ShellFolder$3
+instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$2
+instanceKlass sun/awt/shell/Win32ShellFolderManager2$ComInvoker$1
+instanceKlass java/util/concurrent/LinkedBlockingQueue$Node
+instanceKlass sun/awt/shell/ShellFolder$Invoker
+instanceKlass sun/awt/shell/ShellFolderManager
+instanceKlass javax/accessibility/AccessibleValue
+instanceKlass java/util/Vector$Itr
+instanceKlass javax/swing/ActionPropertyChangeListener
+instanceKlass javax/swing/ButtonGroup
+instanceKlass javax/swing/plaf/basic/BasicMenuItemUI$Handler
+instanceKlass javax/swing/event/MenuDragMouseListener
+instanceKlass sun/swing/MenuItemLayoutHelper
+instanceKlass javax/swing/JMenuItem$MenuItemFocusListener
+instanceKlass javax/swing/JMenu$MenuChangeListener
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$SynthFileChooserUIAccessor
+instanceKlass sun/swing/FilePane$FileChooserUIAccessor
+instanceKlass sun/swing/FilePane$3
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$IndentIcon
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$DirectoryComboBoxRenderer
+instanceKlass javax/swing/KeyboardManager
+instanceKlass javax/swing/JComboBox$AccessibleJComboBox$AccessibleJComboBoxPopupMenuListener
+instanceKlass javax/swing/JList$ListSelectionHandler
+instanceKlass javax/swing/JComboBox$AccessibleJComboBox$AccessibleJComboBoxListSelectionListener
+instanceKlass javax/accessibility/AccessibleExtendedText
+instanceKlass javax/accessibility/AccessibleEditableText
+instanceKlass javax/swing/event/CaretListener
+instanceKlass javax/accessibility/AccessibleText
+instanceKlass javax/swing/JComboBox$AccessibleJComboBox$AccessibleJComboBoxPropertyChangeListener
+instanceKlass javax/accessibility/AccessibleRelationSet
+instanceKlass javax/accessibility/AccessibleContext$1
+instanceKlass sun/awt/AWTAccessor$AccessibleContextAccessor
+instanceKlass javax/accessibility/AccessibleContext
+instanceKlass javax/accessibility/AccessibleExtendedComponent
+instanceKlass javax/accessibility/AccessibleComponent
+instanceKlass javax/accessibility/AccessibleSelection
+instanceKlass javax/accessibility/AccessibleAction
+instanceKlass javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager
+instanceKlass javax/swing/JComboBox$KeySelectionManager
+instanceKlass javax/swing/plaf/basic/BasicComboBoxUI$Handler
+instanceKlass javax/swing/plaf/synth/SynthComboBoxUI$EditorFocusHandler
+instanceKlass javax/swing/JTextField$ScrollRepainter
+instanceKlass javax/swing/text/JTextComponent$DefaultKeymap
+instanceKlass javax/swing/text/Keymap
+instanceKlass javax/swing/text/TabExpander
+instanceKlass javax/swing/text/StyleContext$KeyEnumeration
+instanceKlass javax/swing/text/GapContent$StickyPosition
+instanceKlass javax/swing/text/Position
+instanceKlass javax/swing/text/AbstractDocument$1
+instanceKlass javax/swing/text/AbstractDocument$AbstractElement
+instanceKlass javax/swing/tree/TreeNode
+instanceKlass javax/swing/text/Element
+instanceKlass java/util/Collections$3
+instanceKlass javax/swing/text/StyleContext$SmallAttributeSet
+instanceKlass javax/swing/text/StyleContext$NamedStyle
+instanceKlass javax/swing/text/Style
+instanceKlass javax/swing/text/SimpleAttributeSet$EmptyAttributeSet
+instanceKlass javax/swing/text/SimpleAttributeSet
+instanceKlass javax/swing/text/MutableAttributeSet
+instanceKlass javax/swing/text/AttributeSet
+instanceKlass javax/swing/text/StyleContext$FontKey
+instanceKlass javax/swing/text/AttributeSet$ParagraphAttribute
+instanceKlass javax/swing/text/AttributeSet$ColorAttribute
+instanceKlass javax/swing/text/AttributeSet$FontAttribute
+instanceKlass javax/swing/text/AttributeSet$CharacterAttribute
+instanceKlass javax/swing/text/StyleConstants
+instanceKlass javax/swing/text/StyleContext
+instanceKlass javax/swing/text/AbstractDocument$AttributeContext
+instanceKlass javax/swing/text/GapVector
+instanceKlass javax/swing/text/AbstractDocument$Content
+instanceKlass javax/swing/text/AbstractDocument
+instanceKlass javax/swing/text/DefaultHighlighter$SafeDamager
+instanceKlass javax/swing/text/LayeredHighlighter$LayerPainter
+instanceKlass javax/swing/text/Highlighter$HighlightPainter
+instanceKlass javax/swing/text/Highlighter$Highlight
+instanceKlass javax/swing/text/LayeredHighlighter
+instanceKlass javax/swing/text/Highlighter
+instanceKlass javax/swing/text/Document
+instanceKlass javax/swing/text/DefaultCaret$Handler
+instanceKlass java/awt/datatransfer/ClipboardOwner
+instanceKlass javax/swing/text/Caret
+instanceKlass javax/swing/plaf/synth/SynthTextFieldUI$Handler
+instanceKlass javax/swing/plaf/basic/BasicTextUI$UpdateHandler
+instanceKlass javax/swing/event/DocumentListener
+instanceKlass javax/swing/text/View
+instanceKlass javax/swing/text/Position$Bias
+instanceKlass javax/swing/text/EditorKit
+instanceKlass javax/swing/text/ViewFactory
+instanceKlass javax/swing/plaf/basic/BasicComboBoxEditor
+instanceKlass javax/swing/ComboBoxEditor
+instanceKlass javax/swing/plaf/synth/SynthScrollPaneUI$ViewportViewFocusHandler
+instanceKlass javax/swing/plaf/basic/BasicScrollPaneUI$Handler
+instanceKlass java/awt/event/ComponentAdapter
+instanceKlass javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener
+instanceKlass javax/swing/plaf/basic/BasicScrollBarUI$Handler
+instanceKlass javax/swing/plaf/basic/BasicScrollBarUI$ModelListener
+instanceKlass javax/swing/DefaultBoundedRangeModel
+instanceKlass javax/swing/BoundedRangeModel
+instanceKlass javax/swing/JScrollBar$ModelListener
+instanceKlass javax/swing/ViewportLayout
+instanceKlass javax/swing/ScrollPaneLayout
+instanceKlass javax/swing/plaf/basic/BasicComboPopup$Handler
+instanceKlass javax/swing/plaf/basic/BasicListUI$Handler
+instanceKlass javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag
+instanceKlass javax/swing/event/MouseInputListener
+instanceKlass javax/swing/ListCellRenderer
+instanceKlass javax/swing/DefaultListSelectionModel
+instanceKlass javax/swing/ListSelectionModel
+instanceKlass java/awt/event/FocusAdapter
+instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper
+instanceKlass javax/swing/MenuSelectionManager
+instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber
+instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener
+instanceKlass javax/swing/event/MenuKeyListener
+instanceKlass javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener
+instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$1
+instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper
+instanceKlass javax/swing/DefaultSingleSelectionModel
+instanceKlass javax/swing/SingleSelectionModel
+instanceKlass javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass
+instanceKlass javax/swing/plaf/basic/ComboPopup
+instanceKlass javax/swing/AncestorNotifier
+instanceKlass javax/swing/JComboBox$1
+instanceKlass javax/swing/MutableComboBoxModel
+instanceKlass javax/swing/BoxLayout
+instanceKlass java/awt/event/KeyAdapter
+instanceKlass java/awt/event/MouseMotionAdapter
+instanceKlass javax/swing/ToolTipManager$stillInsideTimerAction
+instanceKlass javax/swing/ToolTipManager$outsideTimerAction
+instanceKlass javax/swing/Timer$DoPostEvent
+instanceKlass javax/swing/ToolTipManager$insideTimerAction
+instanceKlass javax/swing/Timer
+instanceKlass java/awt/event/MouseAdapter
+instanceKlass javax/swing/plaf/basic/BasicHTML
+instanceKlass java/beans/VetoableChangeListener
+instanceKlass javax/swing/event/AncestorListener
+instanceKlass javax/swing/plaf/basic/BasicButtonListener
+instanceKlass java/util/ArrayList$SubList$1
+instanceKlass javax/swing/AbstractButton$Handler
+instanceKlass javax/swing/event/ChangeListener
+instanceKlass javax/swing/DefaultButtonModel
+instanceKlass javax/swing/ButtonModel
+instanceKlass javax/swing/TransferHandler$TransferSupport
+instanceKlass javax/swing/TransferHandler$DropHandler
+instanceKlass java/awt/datatransfer/SystemFlavorMap$SoftCache
+instanceKlass java/awt/datatransfer/SystemFlavorMap
+instanceKlass java/awt/datatransfer/FlavorTable
+instanceKlass java/awt/datatransfer/FlavorMap
+instanceKlass java/awt/dnd/DropTargetContext
+instanceKlass java/awt/dnd/DropTarget
+instanceKlass java/awt/dnd/DropTargetListener
+instanceKlass javax/swing/ClientPropertyKey$1
+instanceKlass sun/awt/AWTAccessor$ClientPropertyKeyAccessor
+instanceKlass javax/swing/AbstractListModel
+instanceKlass sun/swing/plaf/synth/SynthFileChooserUIImpl$1
+instanceKlass javax/swing/filechooser/FileView
+instanceKlass sun/swing/UIAction
+instanceKlass javax/swing/TransferHandler
+instanceKlass javax/swing/filechooser/FileSystemView$1
+instanceKlass javax/swing/filechooser/FileSystemView
+instanceKlass javax/swing/JFileChooser$1
+instanceKlass javax/swing/JFileChooser$WeakPCL
+instanceKlass mage/players/net/UserSkipPrioritySteps
+instanceKlass mage/players/net/UserData
+instanceKlass javax/swing/plaf/synth/ColorType
+instanceKlass javax/swing/plaf/nimbus/NimbusStyle$RuntimeState
+instanceKlass javax/swing/plaf/nimbus/NimbusStyle$Values
+instanceKlass javax/swing/plaf/synth/SynthPainter
+instanceKlass javax/swing/plaf/nimbus/NimbusStyle$CacheKey
+instanceKlass javax/swing/plaf/nimbus/NimbusStyle$1
+instanceKlass java/util/concurrent/ConcurrentLinkedQueue$Node
+instanceKlass javax/swing/plaf/synth/SynthContext
+instanceKlass javax/swing/plaf/synth/SynthUI
+instanceKlass javax/swing/plaf/synth/SynthConstants
+instanceKlass org/jdesktop/layout/GroupLayout$Spring
+instanceKlass javax/swing/ComboBoxModel
+instanceKlass javax/swing/ListModel
+instanceKlass javax/swing/filechooser/FileFilter
+instanceKlass mage/client/util/GUISizeHelper
+instanceKlass sun/reflect/ClassDefiner$1
+instanceKlass sun/reflect/ClassDefiner
+instanceKlass sun/reflect/MethodAccessorGenerator$1
+instanceKlass sun/reflect/Label$PatchInfo
+instanceKlass sun/reflect/Label
+instanceKlass sun/reflect/UTF8
+instanceKlass sun/reflect/ClassFileAssembler
+instanceKlass sun/reflect/ByteVectorImpl
+instanceKlass sun/reflect/ByteVector
+instanceKlass sun/reflect/ByteVectorFactory
+instanceKlass sun/reflect/AccessorGenerator
+instanceKlass sun/reflect/ClassFileConstants
+instanceKlass java/lang/StrictMath
+instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$LinkProperty
+instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$NimbusProperty
+instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$2
+instanceKlass javax/swing/plaf/nimbus/AbstractRegionPainter
+instanceKlass javax/swing/Painter
+instanceKlass sun/swing/plaf/WindowsKeybindings
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$PainterBorder
+instanceKlass javax/swing/BorderFactory
+instanceKlass javax/swing/plaf/BorderUIResource
+instanceKlass javax/swing/plaf/nimbus/State
+instanceKlass sun/swing/plaf/synth/SynthIcon
+instanceKlass javax/swing/plaf/nimbus/AbstractRegionPainter$PaintContext
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$LazyPainter
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$DerivedFont
+instanceKlass javax/swing/AbstractAction
+instanceKlass javax/swing/text/JTextComponent$1
+instanceKlass sun/swing/SwingAccessor$JTextComponentAccessor
+instanceKlass javax/swing/event/RowSorterListener
+instanceKlass javax/swing/event/CellEditorListener
+instanceKlass javax/swing/event/ListSelectionListener
+instanceKlass javax/swing/event/TableColumnModelListener
+instanceKlass javax/swing/event/TableModelListener
+instanceKlass javax/swing/JSpinner$DisabledAction
+instanceKlass javax/swing/Action
+instanceKlass javax/swing/ScrollPaneConstants
+instanceKlass java/awt/Adjustable
+instanceKlass java/util/LinkedList$ListItr
+instanceKlass javax/swing/event/ListDataListener
+instanceKlass java/util/regex/Matcher
+instanceKlass java/util/regex/MatchResult
+instanceKlass java/util/regex/Pattern$TreeInfo
+instanceKlass java/util/regex/Pattern$Node
+instanceKlass java/util/regex/Pattern
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$LazyStyle$Part
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$LazyStyle
+instanceKlass javax/swing/plaf/synth/Region
+instanceKlass javax/swing/plaf/synth/SynthGraphicsUtils
+instanceKlass javax/swing/plaf/synth/SynthStyle
+instanceKlass sun/awt/Win32FontManager$2
+instanceKlass sun/font/SunFontManager$3
+instanceKlass sun/font/FontFamily
+instanceKlass sun/font/Font2DHandle
+instanceKlass sun/font/CompositeFontDescriptor
+instanceKlass sun/awt/FontDescriptor
+instanceKlass sun/awt/FontConfiguration
+instanceKlass sun/font/SunFontManager$FontRegistrationInfo
+instanceKlass sun/font/SunFontManager$2
+instanceKlass sun/awt/Win32FontManager$1
+instanceKlass sun/font/GlyphList
+instanceKlass sun/font/StrikeCache$1
+instanceKlass sun/font/StrikeCache
+instanceKlass sun/font/FontStrike
+instanceKlass sun/font/CharToGlyphMapper
+instanceKlass java/awt/geom/Path2D
+instanceKlass sun/font/StrikeMetrics
+instanceKlass sun/font/Font2D
+instanceKlass sun/font/FontManagerNativeLibrary$1
+instanceKlass sun/font/FontManagerNativeLibrary
+instanceKlass sun/font/SunFontManager$1
+instanceKlass sun/font/SunFontManager$T1Filter
+instanceKlass sun/font/SunFontManager$TTFilter
+instanceKlass java/io/FilenameFilter
+instanceKlass sun/font/SunFontManager
+instanceKlass sun/font/FontManagerForSGE
+instanceKlass sun/font/FontManager
+instanceKlass sun/java2d/FontSupport
+instanceKlass sun/font/FontManagerFactory$1
+instanceKlass sun/font/FontManagerFactory
+instanceKlass sun/font/FontUtilities$1
+instanceKlass sun/font/FontUtilities
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$DefaultsListener
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$ColorTree$Node
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults$ColorTree
+instanceKlass javax/swing/plaf/nimbus/NimbusDefaults
+instanceKlass javax/swing/plaf/nimbus/NimbusLookAndFeel$DefaultsListener
+instanceKlass javax/swing/plaf/synth/SynthLookAndFeel$Handler
+instanceKlass javax/swing/plaf/synth/SynthStyleFactory
+instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry
+instanceKlass java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1
+instanceKlass net/java/truecommons/shed/CanonicalStringSet$CanonicalStringIterator
+instanceKlass java/util/NavigableSet
+instanceKlass java/util/SortedSet
+instanceKlass net/java/truecommons/shed/ExtensionSet$ExtensionMapper
+instanceKlass net/java/truecommons/shed/CanonicalStringSet$Canonicalizer
+instanceKlass net/java/truevfs/comp/zip/ZipCryptoParameters
+instanceKlass net/java/truecommons/cio/OutputService
+instanceKlass net/java/truecommons/key/spec/KeyManagerMap
+instanceKlass net/java/truecommons/cio/InputService
+instanceKlass net/java/truecommons/cio/Container
+instanceKlass net/java/truecommons/shed/Stream
+instanceKlass net/java/truevfs/kernel/spec/FsArchiveEntry
+instanceKlass net/java/truecommons/cio/MutableEntry
+instanceKlass net/java/truecommons/cio/Entry
+instanceKlass net/java/truevfs/comp/zip/ZipEntry
+instanceKlass net/java/truecommons/shed/UriBuilder
+instanceKlass net/java/truevfs/kernel/spec/FsScheme
+instanceKlass net/java/truecommons/services/ProviderWithSomeFunctions
+instanceKlass net/java/truevfs/comp/zip/ZipFileParameters
+instanceKlass net/java/truevfs/comp/zip/ZipEntryFactory
+instanceKlass net/java/truevfs/comp/zip/ZipOutputStreamParameters
+instanceKlass net/java/truevfs/comp/zip/ZipCharsetParameters
+instanceKlass net/java/truevfs/comp/zip/ZipParameters
+instanceKlass net/java/truecommons/services/Modifier
+instanceKlass net/java/truevfs/kernel/spec/sl/FsDriverMapLocator$Lazy
+instanceKlass net/java/truevfs/kernel/spec/sl/FsDriverMapLocator
+instanceKlass net/java/truevfs/kernel/spec/FsAbstractCompositeDriver
+instanceKlass net/java/truevfs/kernel/spec/FsCompositeDriver
+instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse
+instanceKlass scala/Function0$mcV$sp$class
+instanceKlass scala/Function0$class
+instanceKlass scala/runtime/AbstractFunction0
+instanceKlass scala/Function0$mcV$sp
+instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$DefaultThreadRegistry$
+instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$ThreadRegistry
+instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$
+instanceKlass scala/Product$class
+instanceKlass scala/collection/convert/Wrappers$JMapWrapperLike$class
+instanceKlass scala/collection/mutable/Map$class
+instanceKlass scala/collection/mutable/MapLike$class
+instanceKlass scala/collection/mutable/Cloneable$class
+instanceKlass scala/collection/generic/Shrinkable$class
+instanceKlass scala/collection/mutable/Builder$class
+instanceKlass scala/collection/generic/Growable$class
+instanceKlass scala/collection/mutable/Iterable$class
+instanceKlass scala/collection/mutable/Traversable$class
+instanceKlass scala/collection/Map$class
+instanceKlass scala/collection/mutable/Buffer
+instanceKlass scala/collection/mutable/BufferLike
+instanceKlass scala/collection/script/Scriptable
+instanceKlass scala/collection/mutable/Seq
+instanceKlass scala/collection/mutable/SeqLike
+instanceKlass scala/collection/Set
+instanceKlass scala/collection/SetLike
+instanceKlass scala/collection/MapLike$class
+instanceKlass scala/collection/generic/Subtractable$class
+instanceKlass scala/PartialFunction$class
+instanceKlass scala/Function1$class
+instanceKlass scala/collection/GenMapLike$class
+instanceKlass scala/collection/Iterable$class
+instanceKlass scala/collection/IterableView
+instanceKlass scala/collection/IterableViewLike
+instanceKlass scala/collection/IterableLike$class
+instanceKlass scala/collection/GenIterable$class
+instanceKlass scala/collection/generic/TraversableFactory
+instanceKlass scala/collection/generic/GenericSeqCompanion
+instanceKlass scala/collection/Traversable$class
+instanceKlass scala/collection/generic/GenericCompanion
+instanceKlass scala/collection/GenTraversable$class
+instanceKlass scala/collection/generic/GenericTraversableTemplate$class
+instanceKlass scala/collection/Iterator
+instanceKlass scala/collection/TraversableLike$class
+instanceKlass scala/collection/Parallelizable$class
+instanceKlass scala/collection/Seq
+instanceKlass scala/collection/SeqLike
+instanceKlass scala/util/control/ControlThrowable
+instanceKlass scala/util/control/NoStackTrace
+instanceKlass scala/Option
+instanceKlass scala/Function2
+instanceKlass scala/collection/TraversableOnce$class
+instanceKlass scala/collection/convert/Wrappers$class
+instanceKlass scala/collection/convert/Wrappers$
+instanceKlass scala/collection/convert/Wrappers
+instanceKlass scala/collection/TraversableView
+instanceKlass scala/collection/TraversableViewLike
+instanceKlass scala/collection/ViewMkString
+instanceKlass scala/collection/GenSeq
+instanceKlass scala/collection/GenSeqLike
+instanceKlass scala/collection/GenSet
+instanceKlass scala/collection/generic/GenericSetTemplate
+instanceKlass scala/collection/GenSetLike
+instanceKlass scala/collection/AbstractTraversable
+instanceKlass scala/Product
+instanceKlass scala/collection/convert/Wrappers$JMapWrapperLike
+instanceKlass scala/collection/mutable/Map
+instanceKlass scala/collection/mutable/MapLike
+instanceKlass scala/collection/mutable/Cloneable
+instanceKlass scala/Cloneable
+instanceKlass scala/collection/generic/Shrinkable
+instanceKlass scala/collection/mutable/Builder
+instanceKlass scala/collection/generic/Growable
+instanceKlass scala/collection/generic/Clearable
+instanceKlass scala/collection/Map
+instanceKlass scala/collection/MapLike
+instanceKlass scala/collection/generic/Subtractable
+instanceKlass scala/PartialFunction
+instanceKlass scala/collection/GenMap
+instanceKlass scala/collection/GenMapLike
+instanceKlass scala/collection/mutable/Iterable
+instanceKlass scala/collection/Iterable
+instanceKlass scala/collection/IterableLike
+instanceKlass scala/Equals
+instanceKlass scala/collection/GenIterable
+instanceKlass scala/collection/GenIterableLike
+instanceKlass scala/collection/mutable/Traversable
+instanceKlass scala/Mutable
+instanceKlass scala/collection/Traversable
+instanceKlass scala/collection/GenTraversable
+instanceKlass scala/collection/generic/GenericTraversableTemplate
+instanceKlass scala/collection/TraversableLike
+instanceKlass scala/collection/GenTraversableLike
+instanceKlass scala/collection/Parallelizable
+instanceKlass scala/collection/TraversableOnce
+instanceKlass scala/collection/GenTraversableOnce
+instanceKlass scala/collection/generic/FilterMonadic
+instanceKlass scala/collection/generic/HasNewBuilder
+instanceKlass net/java/truevfs/kernel/impl/ReentrantReadWriteLockAspect$class
+instanceKlass net/java/truevfs/kernel/impl/ReadWriteLockAspect$class
+instanceKlass net/java/truevfs/kernel/spec/FsController
+instanceKlass net/java/truevfs/kernel/impl/ArchiveController
+instanceKlass net/java/truevfs/kernel/spec/FsModel
+instanceKlass scala/math/Ordering
+instanceKlass scala/math/PartialOrdering
+instanceKlass scala/math/Equiv
+instanceKlass scala/Serializable
+instanceKlass scala/Function1
+instanceKlass scala/Function0
+instanceKlass net/java/truecommons/shed/Visitor
+instanceKlass net/java/truecommons/shed/UniqueObject
+instanceKlass net/java/truevfs/kernel/impl/ReentrantReadWriteLockAspect
+instanceKlass net/java/truevfs/kernel/impl/ReadWriteLockAspect
+instanceKlass net/java/truecommons/services/LocatableComparator
+instanceKlass net/java/truevfs/kernel/spec/FsManager
+instanceKlass net/java/truevfs/kernel/spec/FsController$Factory
+instanceKlass net/java/truevfs/kernel/spec/FsModel$Factory
+instanceKlass scala/Immutable
+instanceKlass net/java/truecommons/services/Loader$1IterableServices
+instanceKlass net/java/truecommons/services/Decorator
+instanceKlass net/java/truecommons/services/LocatableService
+instanceKlass net/java/truecommons/services/Loader
+instanceKlass org/slf4j/helpers/BasicMarker
+instanceKlass org/slf4j/Marker
+instanceKlass org/slf4j/helpers/BasicMarkerFactory
+instanceKlass org/slf4j/impl/StaticMarkerBinder
+instanceKlass org/slf4j/spi/MarkerFactoryBinder
+instanceKlass org/slf4j/IMarkerFactory
+instanceKlass org/slf4j/MarkerFactory
+instanceKlass java/util/concurrent/ConcurrentHashMap$Traverser
+instanceKlass org/slf4j/helpers/NamedLoggerBase
+instanceKlass org/slf4j/spi/LocationAwareLogger
+instanceKlass org/slf4j/impl/Log4jLoggerFactory
+instanceKlass org/slf4j/impl/StaticLoggerBinder
+instanceKlass org/slf4j/spi/LoggerFactoryBinder
+instanceKlass org/slf4j/helpers/NOPLoggerFactory
+instanceKlass org/slf4j/helpers/SubstituteLoggerFactory
+instanceKlass org/slf4j/ILoggerFactory
+instanceKlass org/slf4j/LoggerFactory
+instanceKlass net/java/truecommons/logging/LocalizedLogger
+instanceKlass net/java/truecommons/services/Function
+instanceKlass net/java/truecommons/services/Factory
+instanceKlass org/slf4j/Logger
+instanceKlass net/java/truecommons/services/ServiceLocator
+instanceKlass net/java/truevfs/kernel/spec/sl/FsManagerLocator$Lazy
+instanceKlass net/java/truevfs/kernel/spec/sl/FsManagerLocator
+instanceKlass net/java/truecommons/services/Container
+instanceKlass javax/inject/Provider
+instanceKlass net/java/truecommons/shed/InheritableThreadLocalStack
+instanceKlass net/java/truecommons/shed/BitField
+instanceKlass net/java/truevfs/kernel/spec/FsAccessOptions
+instanceKlass net/java/truecommons/shed/Resource
+instanceKlass java/awt/Toolkit$SelectiveAWTEventListener
+instanceKlass mage/client/MageFrame$$Lambda$16
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/awt/AWTEventMulticaster
+instanceKlass java/awt/event/MouseWheelListener
+instanceKlass java/awt/event/HierarchyBoundsListener
+instanceKlass java/awt/event/HierarchyListener
+instanceKlass java/awt/event/InputMethodListener
+instanceKlass java/awt/event/TextListener
+instanceKlass java/awt/event/AdjustmentListener
+instanceKlass java/awt/event/ItemListener
+instanceKlass java/awt/event/ActionListener
+instanceKlass java/awt/event/MouseMotionListener
+instanceKlass java/awt/event/MouseListener
+instanceKlass java/awt/event/KeyListener
+instanceKlass java/awt/event/FocusListener
+instanceKlass java/awt/event/ContainerListener
+instanceKlass java/awt/event/WindowAdapter
+instanceKlass java/awt/event/WindowFocusListener
+instanceKlass java/awt/event/WindowStateListener
+instanceKlass mage/client/util/EDTExceptionHandler
+instanceKlass mage/remote/Session
+instanceKlass mage/remote/interfaces/Testable
+instanceKlass mage/remote/interfaces/Replays
+instanceKlass mage/remote/interfaces/PlayerActions
+instanceKlass mage/remote/interfaces/Feedback
+instanceKlass mage/remote/interfaces/ChatSession
+instanceKlass mage/remote/interfaces/ServerState
+instanceKlass mage/remote/interfaces/GameTypes
+instanceKlass mage/remote/interfaces/GamePlay
+instanceKlass mage/remote/interfaces/Connect
+instanceKlass mage/remote/interfaces/ClientData
+instanceKlass mage/client/SessionHandler
+instanceKlass javax/swing/ActionMap
+instanceKlass java/awt/event/KeyEvent$1
+instanceKlass sun/awt/AWTAccessor$KeyEventAccessor
+instanceKlass java/awt/VKCollection
+instanceKlass javax/swing/InputMap
+instanceKlass javax/swing/LayoutComparator
+instanceKlass java/util/function/IntBinaryOperator
+instanceKlass java/util/function/LongBinaryOperator
+instanceKlass java/util/function/DoubleBinaryOperator
+instanceKlass java/util/function/BinaryOperator
+instanceKlass java/util/function/IntToDoubleFunction
+instanceKlass java/util/function/IntToLongFunction
+instanceKlass java/util/function/IntUnaryOperator
+instanceKlass java/util/function/IntFunction
+instanceKlass java/util/stream/LongStream
+instanceKlass java/util/stream/DoubleStream
+instanceKlass java/util/stream/Stream
+instanceKlass java/util/stream/IntStream
+instanceKlass java/util/stream/BaseStream
+instanceKlass java/util/Spliterator$OfDouble
+instanceKlass java/util/Spliterator$OfInt
+instanceKlass java/util/Spliterator$OfLong
+instanceKlass java/util/Spliterator$OfPrimitive
+instanceKlass java/util/Spliterator
+instanceKlass javax/swing/SortingFocusTraversalPolicy$1
+instanceKlass javax/swing/RepaintManager$PaintManager
+instanceKlass javax/swing/JRootPane$RootLayout
+instanceKlass javax/swing/ArrayTable
+instanceKlass com/sun/java/swing/SwingUtilities3
+instanceKlass javax/swing/RepaintManager$ProcessingRunnable
+instanceKlass sun/swing/SwingLazyValue$1
+instanceKlass sun/reflect/misc/Trampoline
+instanceKlass sun/net/www/protocol/jar/JarFileFactory
+instanceKlass sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController
+instanceKlass sun/reflect/misc/MethodUtil$1
+instanceKlass javax/swing/plaf/ComponentUI
+instanceKlass sun/util/ResourceBundleEnumeration
+instanceKlass javax/swing/UIManager$2
+instanceKlass sun/awt/PaintEventDispatcher
+instanceKlass sun/swing/SwingAccessor
+instanceKlass javax/swing/RepaintManager$1
+instanceKlass sun/swing/SwingAccessor$RepaintManagerAccessor
+instanceKlass javax/swing/RepaintManager$DisplayChangedHandler
+instanceKlass javax/swing/RepaintManager
+instanceKlass javax/swing/plaf/metal/OceanTheme$6
+instanceKlass javax/swing/plaf/metal/OceanTheme$5
+instanceKlass javax/swing/plaf/metal/OceanTheme$4
+instanceKlass javax/swing/plaf/metal/OceanTheme$3
+instanceKlass javax/swing/plaf/metal/OceanTheme$2
+instanceKlass javax/swing/plaf/metal/OceanTheme$1
+instanceKlass java/util/EventListenerProxy
+instanceKlass sun/swing/SwingUtilities2$AATextInfo
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$15
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$14
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$13
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$12
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$11
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$10
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$$Lambda$9
+instanceKlass javax/swing/UIDefaults$LazyInputMap
+instanceKlass javax/swing/plaf/basic/BasicLookAndFeel$2
+instanceKlass sun/swing/SwingUtilities2$2
+instanceKlass javax/swing/border/AbstractBorder
+instanceKlass javax/swing/UIDefaults$ActiveValue
+instanceKlass sun/swing/SwingLazyValue
+instanceKlass javax/swing/UIDefaults$LazyValue
+instanceKlass javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate
+instanceKlass javax/swing/plaf/UIResource
+instanceKlass javax/swing/plaf/metal/MetalTheme
+instanceKlass sun/swing/DefaultLookup
+instanceKlass javax/swing/LookAndFeel
+instanceKlass javax/swing/UIManager$1
+instanceKlass javax/swing/UIManager$LAFState
+instanceKlass sun/swing/SwingUtilities2$LSBCacheEntry
+instanceKlass sun/swing/StringUIClientPropertyKey
+instanceKlass sun/swing/UIClientPropertyKey
+instanceKlass java/awt/font/FontRenderContext
+instanceKlass sun/swing/SwingUtilities2
+instanceKlass java/util/IdentityHashMap$IdentityHashMapIterator
+instanceKlass java/awt/Toolkit$DesktopPropertyChangeSupport$1
+instanceKlass java/util/Arrays$LegacyMergeSort
+instanceKlass sun/awt/SunHints$Value
+instanceKlass java/awt/RenderingHints$Key
+instanceKlass sun/awt/SunHints
+instanceKlass java/awt/RenderingHints
+instanceKlass sun/awt/windows/WDesktopProperties$WinPlaySound
+instanceKlass java/awt/Color
+instanceKlass java/awt/Paint
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock
+instanceKlass sun/nio/ch/Interruptible
+instanceKlass java/util/concurrent/locks/ReentrantReadWriteLock
+instanceKlass java/util/concurrent/locks/ReadWriteLock
+instanceKlass sun/awt/windows/ThemeReader
+instanceKlass sun/awt/windows/WDesktopProperties
+instanceKlass sun/awt/OSInfo$1
+instanceKlass sun/awt/OSInfo$WindowsVersion
+instanceKlass sun/awt/OSInfo
+instanceKlass javax/swing/UIManager$LookAndFeelInfo
+instanceKlass javax/swing/UIManager
+instanceKlass java/awt/FlowLayout
+instanceKlass javax/swing/event/EventListenerList
+instanceKlass javax/swing/JComponent$1
+instanceKlass sun/awt/KeyboardFocusManagerPeerImpl
+instanceKlass java/awt/peer/KeyboardFocusManagerPeer
+instanceKlass java/awt/FocusTraversalPolicy
+instanceKlass java/awt/DefaultKeyboardFocusManager$1
+instanceKlass sun/awt/AWTAccessor$DefaultKeyboardFocusManagerAccessor
+instanceKlass java/awt/AWTKeyStroke$1
+instanceKlass java/awt/AWTKeyStroke
+instanceKlass java/awt/KeyboardFocusManager$1
+instanceKlass sun/awt/AWTAccessor$KeyboardFocusManagerAccessor
+instanceKlass java/awt/KeyboardFocusManager
+instanceKlass java/awt/KeyEventPostProcessor
+instanceKlass java/awt/KeyEventDispatcher
+instanceKlass java/awt/Window$WindowDisposerRecord
+instanceKlass java/awt/BorderLayout
+instanceKlass java/awt/LayoutManager2
+instanceKlass java/awt/GraphicsConfiguration
+instanceKlass sun/awt/image/SurfaceManager$ProxiedGraphicsConfig
+instanceKlass sun/java2d/pipe/hw/AccelGraphicsConfig
+instanceKlass sun/java2d/pipe/hw/BufferedContextProvider
+instanceKlass sun/java2d/pipe/BufferedContext
+instanceKlass sun/java2d/pipe/hw/ContextCapabilities
+instanceKlass sun/java2d/d3d/D3DGraphicsDevice$1
+instanceKlass sun/java2d/d3d/D3DGraphicsDevice$1Result
+instanceKlass sun/java2d/d3d/D3DRenderQueue$1
+instanceKlass sun/java2d/pipe/RenderBuffer
+instanceKlass sun/java2d/pipe/RenderQueue
+instanceKlass sun/misc/PerfCounter$WindowsClientCounters
+instanceKlass java/awt/GraphicsDevice
+instanceKlass sun/java2d/SunGraphicsEnvironment$1
+instanceKlass sun/awt/SunDisplayChanger
+instanceKlass sun/java2d/SurfaceManagerFactory
+instanceKlass sun/java2d/windows/WindowsFlags$1
+instanceKlass sun/java2d/windows/WindowsFlags
+instanceKlass java/awt/Cursor$1
+instanceKlass sun/awt/AWTAccessor$CursorAccessor
+instanceKlass java/awt/geom/Point2D
+instanceKlass java/awt/Cursor
+instanceKlass java/awt/Graphics
+instanceKlass java/awt/geom/RectangularShape
+instanceKlass java/awt/Shape
+instanceKlass java/awt/Component$3
+instanceKlass java/awt/ComponentOrientation
+instanceKlass java/awt/SplashScreen$1
+instanceKlass java/awt/SplashScreen
+instanceKlass java/awt/TrayIcon
+instanceKlass java/awt/MenuComponent
+instanceKlass java/awt/EventQueue$3
+instanceKlass sun/awt/dnd/SunDragSourceContextPeer
+instanceKlass java/awt/dnd/peer/DragSourceContextPeer
+instanceKlass sun/awt/EventQueueDelegate
+instanceKlass java/awt/ModalEventFilter
+instanceKlass java/awt/EventDispatchThread$HierarchyEventFilter
+instanceKlass java/awt/EventFilter
+instanceKlass java/awt/EventDispatchThread$1
+instanceKlass java/awt/Conditional
+instanceKlass sun/awt/EventQueueItem
+instanceKlass java/awt/EventQueue$5
+instanceKlass java/awt/event/InvocationEvent$1
+instanceKlass sun/awt/AWTAccessor$InvocationEventAccessor
+instanceKlass java/awt/ActiveEvent
+instanceKlass sun/awt/PostEventQueue
+instanceKlass sun/awt/MostRecentKeyValue
+instanceKlass java/awt/Queue
+instanceKlass sun/awt/AppContext$1
+instanceKlass sun/awt/AppContext$2
+instanceKlass sun/awt/AppContext$3
+instanceKlass sun/awt/AppContext$6
+instanceKlass sun/misc/JavaAWTAccess
+instanceKlass sun/awt/AppContext$GetAppContextLock
+instanceKlass sun/awt/AppContext
+instanceKlass java/lang/Shutdown$Lock
+instanceKlass java/lang/Shutdown
+instanceKlass java/lang/ApplicationShutdownHooks$1
+instanceKlass java/lang/ApplicationShutdownHooks
+instanceKlass sun/awt/windows/WToolkit$$Lambda$8
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/awt/windows/WToolkit$$Lambda$7
+instanceKlass sun/awt/windows/WToolkit$$Lambda$6
+instanceKlass sun/awt/windows/WToolkit$$Lambda$5
+instanceKlass sun/awt/AWTAutoShutdown
+instanceKlass sun/misc/ThreadGroupUtils
+instanceKlass sun/java2d/Disposer$$Lambda$4
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/java2d/Disposer$1
+instanceKlass sun/java2d/Disposer
+instanceKlass sun/awt/windows/WToolkit$ToolkitDisposer
+instanceKlass sun/java2d/DisposerRecord
+instanceKlass sun/misc/PerformanceLogger$TimeData
+instanceKlass sun/misc/PerformanceLogger
+instanceKlass sun/awt/SunToolkit$ModalityListenerList
+instanceKlass sun/awt/ModalityListener
+instanceKlass java/beans/PropertyChangeListener
+instanceKlass java/beans/ChangeListenerMap
+instanceKlass java/beans/PropertyChangeSupport
+instanceKlass sun/awt/windows/WToolkit$2
+instanceKlass sun/awt/DisplayChangedListener
+instanceKlass sun/awt/image/SurfaceManager
+instanceKlass sun/awt/image/SurfaceManager$ImageAccessor
+instanceKlass java/awt/ImageCapabilities
+instanceKlass sun/java2d/DestSurfaceProvider
+instanceKlass sun/java2d/loops/RenderCache$Entry
+instanceKlass sun/java2d/loops/RenderCache
+instanceKlass sun/java2d/pipe/DrawImage
+instanceKlass sun/java2d/pipe/GeneralCompositePipe
+instanceKlass sun/java2d/pipe/SpanShapeRenderer
+instanceKlass sun/java2d/pipe/AlphaPaintPipe
+instanceKlass sun/java2d/pipe/AAShapePipe
+instanceKlass sun/java2d/pipe/RegionIterator
+instanceKlass sun/java2d/pipe/Region
+instanceKlass sun/java2d/pipe/SpanClipRenderer
+instanceKlass sun/java2d/pipe/PixelToShapeConverter
+instanceKlass sun/java2d/pipe/AlphaColorPipe
+instanceKlass sun/java2d/pipe/CompositePipe
+instanceKlass sun/java2d/pipe/GlyphListPipe
+instanceKlass sun/java2d/pipe/OutlineTextRenderer
+instanceKlass sun/java2d/pipe/RenderingEngine$1
+instanceKlass sun/java2d/pipe/RenderingEngine
+instanceKlass sun/java2d/pipe/LoopPipe
+instanceKlass sun/java2d/pipe/LoopBasedPipe
+instanceKlass sun/java2d/pipe/ParallelogramPipe
+instanceKlass sun/java2d/pipe/NullPipe
+instanceKlass sun/java2d/pipe/DrawImagePipe
+instanceKlass sun/java2d/pipe/TextPipe
+instanceKlass sun/java2d/pipe/ShapeDrawPipe
+instanceKlass sun/java2d/pipe/PixelFillPipe
+instanceKlass sun/java2d/pipe/PixelDrawPipe
+instanceKlass sun/java2d/StateTrackableDelegate$2
+instanceKlass sun/java2d/StateTrackableDelegate
+instanceKlass java/awt/color/ICC_Profile$1
+instanceKlass sun/java2d/cmm/ProfileActivator
+instanceKlass sun/java2d/cmm/ProfileDeferralMgr
+instanceKlass java/awt/color/ICC_Profile
+instanceKlass java/awt/color/ColorSpace
+instanceKlass java/awt/image/ColorModel$1
+instanceKlass java/awt/image/ColorModel
+instanceKlass sun/awt/image/PixelConverter
+instanceKlass sun/java2d/loops/SurfaceType
+instanceKlass sun/java2d/SurfaceData
+instanceKlass sun/java2d/Surface
+instanceKlass sun/java2d/StateTrackable
+instanceKlass sun/java2d/DisposerTarget
+instanceKlass sun/awt/windows/WToolkit$1
+instanceKlass java/util/Collections$SynchronizedMap
+instanceKlass sun/awt/KeyboardFocusManagerPeerProvider
+instanceKlass sun/awt/InputMethodSupport
+instanceKlass sun/awt/ComponentFactory
+instanceKlass sun/awt/WindowClosingListener
+instanceKlass sun/awt/WindowClosingSupport
+instanceKlass java/awt/Toolkit$2
+instanceKlass java/awt/EventQueue$2
+instanceKlass sun/awt/AWTAccessor$EventQueueAccessor
+instanceKlass java/awt/EventQueue$1
+instanceKlass java/awt/EventQueue
+instanceKlass javax/swing/SwingUtilities
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass mage/client/MageFrame$$Lambda$3
+instanceKlass mage/client/MageFrame$$Lambda$2
+instanceKlass org/apache/log4j/spi/LocationInfo
+instanceKlass java/text/DontCareFieldPosition$1
+instanceKlass java/text/Format$FieldDelegate
+instanceKlass mage/cards/decks/Deck
+instanceKlass mage/interfaces/callback/ClientCallback
+instanceKlass mage/view/GameEndView
+instanceKlass java/util/UUID
+instanceKlass mage/view/UserRequestMessage
+instanceKlass mage/remote/Connection
+instanceKlass java/util/concurrent/Executors$DefaultThreadFactory
+instanceKlass java/util/concurrent/ThreadFactory
+instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
+instanceKlass java/util/concurrent/locks/Condition
+instanceKlass java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
+instanceKlass java/util/concurrent/locks/AbstractOwnableSynchronizer
+instanceKlass java/util/concurrent/RunnableScheduledFuture
+instanceKlass java/util/concurrent/ScheduledFuture
+instanceKlass java/util/concurrent/Delayed
+instanceKlass java/util/concurrent/RunnableFuture
+instanceKlass java/util/concurrent/Future
+instanceKlass java/util/concurrent/BlockingQueue
+instanceKlass java/util/concurrent/ThreadPoolExecutor$AbortPolicy
+instanceKlass java/util/concurrent/RejectedExecutionHandler
+instanceKlass java/util/concurrent/AbstractExecutorService
+instanceKlass java/util/concurrent/ScheduledExecutorService
+instanceKlass java/util/concurrent/ExecutorService
+instanceKlass java/util/concurrent/Executor
+instanceKlass java/util/concurrent/Executors
+instanceKlass java/util/EnumMap$1
+instanceKlass mage/client/components/MageUI
+instanceKlass mage/utils/MageVersion
+instanceKlass java/util/prefs/AbstractPreferences$1
+instanceKlass java/util/prefs/NodeChangeListener
+instanceKlass java/util/prefs/PreferenceChangeListener
+instanceKlass java/util/prefs/WindowsPreferencesFactory
+instanceKlass java/util/prefs/PreferencesFactory
+instanceKlass java/util/prefs/Preferences$2
+instanceKlass java/util/prefs/Preferences$1
+instanceKlass java/util/prefs/Preferences
+instanceKlass org/apache/log4j/CategoryKey
+instanceKlass org/apache/log4j/helpers/AppenderAttachableImpl
+instanceKlass java/util/Vector$1
+instanceKlass java/util/Collections$EmptyEnumeration
+instanceKlass org/apache/log4j/SortedKeyEnumeration
+instanceKlass org/apache/log4j/spi/Filter
+instanceKlass java/text/DigitList
+instanceKlass java/text/FieldPosition
+instanceKlass java/util/Currency$CurrencyNameGetter
+instanceKlass java/util/Currency$1
+instanceKlass java/util/Currency
+instanceKlass java/text/DecimalFormatSymbols
+instanceKlass java/util/concurrent/atomic/AtomicMarkableReference$Pair
+instanceKlass java/util/concurrent/atomic/AtomicMarkableReference
+instanceKlass java/text/DateFormatSymbols
+instanceKlass sun/util/calendar/CalendarUtils
+instanceKlass sun/util/calendar/CalendarDate
+instanceKlass java/util/Collections$EmptyIterator
+instanceKlass sun/util/locale/LanguageTag
+instanceKlass sun/util/resources/LocaleData$1
+instanceKlass sun/util/resources/LocaleData
+instanceKlass sun/util/locale/provider/LocaleResources
+instanceKlass sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter
+instanceKlass sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter
+instanceKlass sun/util/locale/provider/SPILocaleProviderAdapter$1
+instanceKlass sun/util/locale/provider/LocaleServiceProviderPool
+instanceKlass sun/util/locale/provider/CalendarDataUtility
+instanceKlass java/util/Calendar$Builder
+instanceKlass sun/util/locale/provider/JRELocaleProviderAdapter$1
+instanceKlass sun/util/locale/provider/LocaleDataMetaInfo
+instanceKlass sun/util/locale/provider/AvailableLanguageTags
+instanceKlass sun/util/locale/provider/LocaleProviderAdapter$1
+instanceKlass sun/util/locale/provider/ResourceBundleBasedAdapter
+instanceKlass sun/util/locale/provider/LocaleProviderAdapter
+instanceKlass java/util/spi/LocaleServiceProvider
+instanceKlass java/util/Calendar
+instanceKlass java/util/TimeZone$1
+instanceKlass java/util/zip/CRC32
+instanceKlass java/util/zip/Checksum
+instanceKlass sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule
+instanceKlass java/io/DataInput
+instanceKlass sun/util/calendar/ZoneInfoFile$1
+instanceKlass sun/util/calendar/ZoneInfoFile
+instanceKlass java/util/TimeZone
+instanceKlass java/util/Locale$1
+instanceKlass org/apache/log4j/spi/LoggingEvent
+instanceKlass java/beans/SimpleBeanInfo
+instanceKlass java/util/TreeMap$PrivateEntryIterator
+instanceKlass sun/reflect/annotation/AnnotationParser
+instanceKlass java/beans/Transient
+instanceKlass com/sun/beans/WildcardTypeImpl
+instanceKlass java/lang/reflect/GenericArrayType
+instanceKlass sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl
+instanceKlass java/lang/reflect/ParameterizedType
+instanceKlass sun/reflect/generics/reflectiveObjects/LazyReflectiveObjectGenerator
+instanceKlass java/lang/reflect/WildcardType
+instanceKlass sun/reflect/generics/visitor/Reifier
+instanceKlass sun/reflect/generics/visitor/TypeTreeVisitor
+instanceKlass sun/reflect/generics/tree/MethodTypeSignature
+instanceKlass sun/reflect/generics/tree/Wildcard
+instanceKlass sun/reflect/generics/tree/BottomSignature
+instanceKlass sun/reflect/generics/factory/CoreReflectionFactory
+instanceKlass sun/reflect/generics/factory/GenericsFactory
+instanceKlass sun/reflect/generics/scope/AbstractScope
+instanceKlass sun/reflect/generics/scope/Scope
+instanceKlass java/lang/reflect/TypeVariable
+instanceKlass sun/reflect/generics/tree/ClassSignature
+instanceKlass sun/reflect/generics/tree/Signature
+instanceKlass sun/reflect/generics/tree/ClassTypeSignature
+instanceKlass sun/reflect/generics/tree/SimpleClassTypeSignature
+instanceKlass sun/reflect/generics/tree/FieldTypeSignature
+instanceKlass sun/reflect/generics/tree/BaseType
+instanceKlass sun/reflect/generics/tree/TypeSignature
+instanceKlass sun/reflect/generics/tree/ReturnType
+instanceKlass sun/reflect/generics/tree/TypeArgument
+instanceKlass sun/reflect/generics/tree/FormalTypeParameter
+instanceKlass sun/reflect/generics/tree/TypeTree
+instanceKlass sun/reflect/generics/tree/Tree
+instanceKlass sun/reflect/generics/parser/SignatureParser
+instanceKlass com/sun/beans/TypeResolver
+instanceKlass java/beans/MethodRef
+instanceKlass com/sun/beans/util/Cache$CacheEntry
+instanceKlass com/sun/beans/util/Cache
+instanceKlass com/sun/beans/finder/AbstractFinder
+instanceKlass com/sun/beans/finder/ClassFinder
+instanceKlass com/sun/beans/finder/InstanceFinder
+instanceKlass java/beans/WeakIdentityMap
+instanceKlass java/beans/ThreadGroupContext
+instanceKlass java/lang/reflect/Proxy$ProxyClassFactory
+instanceKlass java/lang/reflect/Proxy$KeyFactory
+instanceKlass java/util/function/BiFunction
+instanceKlass java/lang/reflect/WeakCache
+instanceKlass java/lang/reflect/InvocationHandler
+instanceKlass java/lang/reflect/Proxy
+instanceKlass java/beans/FeatureDescriptor
+instanceKlass com/sun/beans/WeakCache
+instanceKlass java/beans/Introspector
+instanceKlass java/beans/BeanInfo
+instanceKlass org/apache/log4j/config/PropertySetter
+instanceKlass org/apache/log4j/helpers/FormattingInfo
+instanceKlass java/text/Format
+instanceKlass org/apache/log4j/helpers/PatternConverter
+instanceKlass org/apache/log4j/helpers/PatternParser
+instanceKlass org/apache/log4j/helpers/OnlyOnceErrorHandler
+instanceKlass org/apache/log4j/Layout
+instanceKlass org/apache/log4j/spi/ErrorHandler
+instanceKlass org/apache/log4j/AppenderSkeleton
+instanceKlass org/apache/log4j/spi/OptionHandler
+instanceKlass org/apache/log4j/Appender
+instanceKlass sun/net/DefaultProgressMeteringPolicy
+instanceKlass sun/net/ProgressMeteringPolicy
+instanceKlass sun/net/ProgressMonitor
+instanceKlass org/apache/log4j/PropertyConfigurator
+instanceKlass org/apache/log4j/helpers/LogLog
+instanceKlass org/apache/log4j/helpers/Loader
+instanceKlass org/apache/log4j/spi/Configurator
+instanceKlass org/apache/log4j/helpers/OptionConverter
+instanceKlass org/apache/log4j/spi/DefaultRepositorySelector
+instanceKlass org/apache/log4j/DefaultCategoryFactory
+instanceKlass org/apache/log4j/or/DefaultRenderer
+instanceKlass org/apache/log4j/or/ObjectRenderer
+instanceKlass org/apache/log4j/or/RendererMap
+instanceKlass org/apache/log4j/spi/LoggerFactory
+instanceKlass org/apache/log4j/Hierarchy
+instanceKlass org/apache/log4j/spi/ThrowableRendererSupport
+instanceKlass org/apache/log4j/spi/RendererSupport
+instanceKlass org/apache/log4j/spi/RepositorySelector
+instanceKlass org/apache/log4j/spi/LoggerRepository
+instanceKlass org/apache/log4j/LogManager
+instanceKlass org/apache/log4j/Priority
+instanceKlass org/apache/log4j/Category
+instanceKlass org/apache/log4j/spi/AppenderAttachable
+instanceKlass java/awt/Frame$1
+instanceKlass sun/awt/AWTAccessor$FrameAccessor
+instanceKlass java/awt/Window$1
+instanceKlass sun/awt/AWTAccessor$WindowAccessor
+instanceKlass java/awt/Container$1
+instanceKlass sun/awt/AWTAccessor$ContainerAccessor
+instanceKlass java/awt/geom/Dimension2D
+instanceKlass java/awt/LightweightDispatcher
+instanceKlass java/awt/event/AWTEventListener
+instanceKlass java/awt/Component$DummyRequestFocusController
+instanceKlass sun/awt/RequestFocusController
+instanceKlass java/awt/Component$1
+instanceKlass sun/awt/AWTAccessor$ComponentAccessor
+instanceKlass java/lang/Class$4
+instanceKlass java/text/AttributedCharacterIterator$Attribute
+instanceKlass sun/font/AttributeValues
+instanceKlass java/awt/geom/AffineTransform
+instanceKlass sun/font/FontAccess
+instanceKlass java/awt/Font
+instanceKlass sun/awt/windows/WObjectPeer
+instanceKlass java/awt/dnd/peer/DropTargetPeer
+instanceKlass java/awt/peer/ComponentPeer
+instanceKlass java/awt/event/InputEvent$1
+instanceKlass sun/awt/AWTAccessor$InputEventAccessor
+instanceKlass java/awt/event/NativeLibLoader$1
+instanceKlass java/awt/event/NativeLibLoader
+instanceKlass java/awt/AWTEvent$1
+instanceKlass sun/awt/AWTAccessor$AWTEventAccessor
+instanceKlass java/util/EventObject
+instanceKlass java/awt/Insets
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/InnerClassLambdaMetafactory$1
+instanceKlass java/awt/GraphicsEnvironment$$Lambda$1
+instanceKlass java/lang/invoke/InfoFromMemberName
+instanceKlass java/lang/invoke/MethodHandleInfo
+instanceKlass sun/security/util/SecurityConstants
+instanceKlass java/security/AccessController$1
+instanceKlass java/lang/invoke/AbstractValidatingLambdaMetafactory
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass jdk/internal/org/objectweb/asm/FieldVisitor
+instanceKlass java/lang/invoke/BoundMethodHandle$Factory$1
+instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData$1
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaFormBuffer
+instanceKlass java/lang/invoke/LambdaFormEditor
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/MethodHandleImpl$Lazy
+instanceKlass java/lang/invoke/LambdaForm$BMH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/util/SubList$1
+instanceKlass java/util/ListIterator
+instanceKlass java/util/ArrayList$Itr
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/LambdaForm$MH
+instanceKlass java/lang/invoke/InvokerBytecodeGenerator$CpPatch
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass java/lang/invoke/LambdaForm$DMH
+instanceKlass sun/invoke/empty/Empty
+instanceKlass sun/invoke/util/VerifyType
+instanceKlass java/lang/invoke/InvokerBytecodeGenerator$2
+instanceKlass jdk/internal/org/objectweb/asm/AnnotationVisitor
+instanceKlass jdk/internal/org/objectweb/asm/Frame
+instanceKlass jdk/internal/org/objectweb/asm/Label
+instanceKlass jdk/internal/org/objectweb/asm/Type
+instanceKlass jdk/internal/org/objectweb/asm/MethodVisitor
+instanceKlass jdk/internal/org/objectweb/asm/Item
+instanceKlass jdk/internal/org/objectweb/asm/ByteVector
+instanceKlass jdk/internal/org/objectweb/asm/ClassVisitor
+instanceKlass java/lang/invoke/InvokerBytecodeGenerator
+instanceKlass java/util/AbstractList$Itr
+instanceKlass java/util/Collections$UnmodifiableCollection$1
+instanceKlass java/lang/invoke/DirectMethodHandle$Lazy
+instanceKlass sun/invoke/util/BytecodeDescriptor
+instanceKlass java/lang/invoke/BoundMethodHandle$Factory
+instanceKlass java/lang/invoke/BoundMethodHandle$SpeciesData
+instanceKlass java/lang/invoke/LambdaForm$NamedFunction
+instanceKlass java/lang/invoke/LambdaForm$Name
+instanceKlass sun/invoke/util/ValueConversions
+instanceKlass sun/invoke/util/VerifyAccess
+instanceKlass java/lang/Long$LongCache
+instanceKlass java/lang/Character$CharacterCache
+instanceKlass java/lang/Short$ShortCache
+instanceKlass java/lang/Byte$ByteCache
+instanceKlass sun/invoke/util/Wrapper$Format
+instanceKlass java/lang/invoke/MethodHandles
+instanceKlass java/lang/invoke/Invokers
+instanceKlass java/lang/invoke/MethodTypeForm
+instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet
+instanceKlass java/lang/invoke/MethodHandles$Lookup
+instanceKlass java/lang/invoke/LambdaMetafactory
+instanceKlass java/awt/GraphicsEnvironment
+instanceKlass java/util/Properties$LineReader
+instanceKlass java/awt/Toolkit$1
+instanceKlass java/awt/Toolkit$3
+instanceKlass java/net/URLClassLoader$2
+instanceKlass java/util/ResourceBundle$Control$1
+instanceKlass java/util/ResourceBundle$CacheKeyReference
+instanceKlass java/util/ResourceBundle$CacheKey
+instanceKlass java/util/ResourceBundle$RBClassLoader$1
+instanceKlass java/net/URLClassLoader$3$1
+instanceKlass sun/misc/CompoundEnumeration
+instanceKlass java/net/URLClassLoader$3
+instanceKlass sun/misc/URLClassPath$1
+instanceKlass java/lang/ClassLoader$2
+instanceKlass sun/misc/URLClassPath$2
+instanceKlass sun/misc/Launcher$BootClassPathHolder$1
+instanceKlass sun/misc/Launcher$BootClassPathHolder
+instanceKlass java/util/LinkedHashMap$LinkedHashIterator
+instanceKlass java/util/ServiceLoader$1
+instanceKlass java/util/ServiceLoader$LazyIterator
+instanceKlass java/util/ServiceLoader
+instanceKlass java/util/spi/ResourceBundleControlProvider
+instanceKlass java/util/ResourceBundle
+instanceKlass java/util/ResourceBundle$Control
+instanceKlass java/awt/Toolkit$5
+instanceKlass sun/awt/AWTAccessor
+instanceKlass java/awt/Toolkit$4
+instanceKlass sun/awt/AWTAccessor$ToolkitAccessor
+instanceKlass java/awt/Toolkit
+instanceKlass java/awt/Component$AWTTreeLock
+instanceKlass sun/util/calendar/CalendarSystem
+instanceKlass java/util/Date
+instanceKlass sun/util/logging/LoggingSupport$2
+instanceKlass sun/reflect/UnsafeFieldAccessorFactory
+instanceKlass java/util/logging/LoggingProxyImpl
+instanceKlass sun/util/logging/LoggingProxy
+instanceKlass sun/util/logging/LoggingSupport$1
+instanceKlass sun/util/logging/LoggingSupport
+instanceKlass sun/util/logging/PlatformLogger$LoggerProxy
+instanceKlass sun/util/logging/PlatformLogger$1
+instanceKlass sun/util/logging/PlatformLogger
+instanceKlass java/awt/Transparency
+instanceKlass java/awt/image/WritableRenderedImage
+instanceKlass java/awt/image/RenderedImage
+instanceKlass java/awt/Image
+instanceKlass javax/swing/GroupLayout$Spring
+instanceKlass java/awt/LayoutManager
+instanceKlass javax/swing/Icon
+instanceKlass javax/swing/Scrollable
+instanceKlass java/awt/Composite
+instanceKlass javax/swing/event/PopupMenuListener
+instanceKlass javax/swing/MenuElement
+instanceKlass javax/swing/SwingConstants
+instanceKlass java/awt/ItemSelectable
+instanceKlass net/java/balloontip/positioners/BalloonTipPositioner
+instanceKlass net/java/balloontip/styles/BalloonTipStyle
+instanceKlass javax/swing/border/Border
+instanceKlass java/awt/event/ComponentListener
+instanceKlass javax/swing/DesktopManager
+instanceKlass java/awt/event/WindowListener
+instanceKlass java/util/EventListener
+instanceKlass java/net/Socket
+instanceKlass java/net/Inet6Address$Inet6AddressHolder
+instanceKlass sun/net/NetHooks
+instanceKlass java/net/Inet4AddressImpl
+instanceKlass java/net/InetAddress$2
+instanceKlass sun/net/spi/nameservice/NameService
+instanceKlass java/awt/Component
+instanceKlass java/net/Inet6AddressImpl
+instanceKlass java/net/InetAddressImpl
+instanceKlass java/net/InetAddressImplFactory
+instanceKlass java/awt/image/ImageObserver
+instanceKlass java/net/InetAddress$Cache
+instanceKlass java/net/InetAddress$InetAddressHolder
+instanceKlass java/net/InetAddress$1
+instanceKlass sun/security/action/GetBooleanAction
+instanceKlass java/net/InetSocketAddress$InetSocketAddressHolder
+instanceKlass java/net/InetAddress
+instanceKlass java/net/SocketAddress
+instanceKlass java/awt/MenuContainer
+instanceKlass javax/swing/TransferHandler$HasGetTransferHandler
+instanceKlass javax/swing/RootPaneContainer
+instanceKlass javax/accessibility/Accessible
+instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryBuffer
+instanceKlass javax/swing/WindowConstants
+instanceKlass sun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer
+instanceKlass sun/misc/FloatingDecimal$ASCIIToBinaryConverter
+instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIBuffer
+instanceKlass mage/interfaces/MageClient
+instanceKlass sun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer
+instanceKlass mage/interfaces/callback/CallbackClient
+instanceKlass sun/misc/FloatingDecimal$BinaryToASCIIConverter
+instanceKlass sun/misc/FloatingDecimal
+instanceKlass java/net/PlainSocketImpl$1
+instanceKlass java/net/AbstractPlainSocketImpl$1
+instanceKlass java/net/SocketImpl
+instanceKlass java/net/SocketOptions
+instanceKlass java/net/SocksConsts
+instanceKlass java/net/ServerSocket
+instanceKlass com/intellij/rt/execution/application/AppMain$1
+instanceKlass java/lang/Void
+instanceKlass java/lang/Class$MethodArray
+instanceKlass sun/launcher/LauncherHelper$FXHelper
+instanceKlass com/intellij/rt/execution/application/AppMain
+instanceKlass java/io/FilePermission$1
+instanceKlass sun/net/www/MessageHeader
+instanceKlass java/net/URLConnection
+instanceKlass java/security/PermissionCollection
+instanceKlass sun/nio/ByteBuffered
+instanceKlass sun/security/util/ManifestEntryVerifier
+instanceKlass sun/security/util/SignatureFileVerifier
+instanceKlass java/lang/Package
+instanceKlass java/util/jar/JarVerifier$3
+instanceKlass java/security/CodeSigner
+instanceKlass java/util/jar/JarVerifier
+instanceKlass sun/misc/ASCIICaseInsensitiveComparator
+instanceKlass java/util/jar/Attributes$Name
+instanceKlass java/util/jar/Attributes
+instanceKlass sun/misc/Resource
+instanceKlass java/util/LinkedList$Node
+instanceKlass java/util/zip/ZStreamRef
+instanceKlass java/util/zip/Inflater
+instanceKlass sun/misc/IOUtils
+instanceKlass java/util/zip/ZipEntry
+instanceKlass sun/misc/ExtensionDependency
+instanceKlass sun/misc/JarIndex
+instanceKlass sun/nio/ch/DirectBuffer
+instanceKlass sun/misc/PerfCounter$CoreCounters
+instanceKlass sun/misc/Perf
+instanceKlass sun/misc/Perf$GetPerfAction
+instanceKlass sun/misc/PerfCounter
+instanceKlass java/util/zip/ZipCoder
+instanceKlass java/util/Deque
+instanceKlass java/util/Queue
+instanceKlass java/nio/charset/StandardCharsets
+instanceKlass java/util/jar/JavaUtilJarAccessImpl
+instanceKlass sun/misc/JavaUtilJarAccess
+instanceKlass sun/misc/FileURLMapper
+instanceKlass sun/misc/URLClassPath$JarLoader$1
+instanceKlass sun/nio/cs/ThreadLocalCoders$Cache
+instanceKlass sun/nio/cs/ThreadLocalCoders
+instanceKlass java/util/zip/ZipFile$1
+instanceKlass sun/misc/JavaUtilZipFileAccess
+instanceKlass java/util/zip/ZipFile
+instanceKlass java/util/zip/ZipConstants
+instanceKlass sun/misc/URLClassPath$Loader
+instanceKlass sun/misc/URLClassPath$3
+instanceKlass sun/net/util/URLUtil
+instanceKlass java/net/URLClassLoader$1
+instanceKlass java/lang/StringCoding$StringDecoder
+instanceKlass sun/nio/cs/SingleByte
+instanceKlass java/io/FileOutputStream$1
+instanceKlass java/lang/StringCoding$StringEncoder
+instanceKlass java/lang/ThreadLocal$ThreadLocalMap
+instanceKlass java/lang/StringCoding
+instanceKlass sun/usagetracker/UsageTrackerClient$3
+instanceKlass java/util/TreeMap$Entry
+instanceKlass java/lang/ProcessEnvironment$CheckedEntry
+instanceKlass java/util/HashMap$HashIterator
+instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet$1
+instanceKlass java/util/NavigableMap
+instanceKlass java/util/SortedMap
+instanceKlass java/util/Collections$UnmodifiableMap
+instanceKlass java/lang/ProcessEnvironment$EntryComparator
+instanceKlass java/lang/ProcessEnvironment$NameComparator
+instanceKlass sun/usagetracker/UsageTrackerClient$2
+instanceKlass sun/usagetracker/UsageTrackerClient$4
+instanceKlass sun/usagetracker/UsageTrackerClient$1
+instanceKlass java/util/concurrent/atomic/AtomicBoolean
+instanceKlass sun/usagetracker/UsageTrackerClient
+instanceKlass sun/misc/PostVMInitHook
+instanceKlass java/lang/invoke/MethodHandleStatics$1
+instanceKlass java/lang/invoke/MethodHandleStatics
+instanceKlass java/lang/invoke/MemberName$Factory
+instanceKlass java/lang/ClassValue$Version
+instanceKlass java/lang/ClassValue$Identity
+instanceKlass java/lang/ClassValue
+instanceKlass java/lang/invoke/MethodHandleImpl$3
+instanceKlass java/lang/invoke/MethodHandleImpl$2
+instanceKlass java/util/function/Function
+instanceKlass java/lang/invoke/MethodHandleImpl$1
+instanceKlass java/lang/invoke/MethodHandleImpl
+instanceKlass java/lang/SystemClassLoaderAction
+instanceKlass sun/misc/Launcher$AppClassLoader$1
+instanceKlass sun/misc/URLClassPath
+instanceKlass java/security/Principal
+instanceKlass java/security/ProtectionDomain$Key
+instanceKlass java/security/ProtectionDomain$2
+instanceKlass sun/misc/JavaSecurityProtectionDomainAccess
+instanceKlass java/security/ProtectionDomain$JavaSecurityAccessImpl
+instanceKlass sun/misc/JavaSecurityAccess
+instanceKlass java/net/URLStreamHandler
+instanceKlass java/net/Parts
+instanceKlass java/util/BitSet
+instanceKlass sun/net/www/ParseUtil
+instanceKlass java/io/FileInputStream$1
+instanceKlass java/lang/CharacterData
+instanceKlass sun/util/locale/LocaleUtils
+instanceKlass java/util/Locale$LocaleKey
+instanceKlass sun/util/locale/BaseLocale$Key
+instanceKlass sun/util/locale/BaseLocale
+instanceKlass java/util/concurrent/ConcurrentHashMap$CollectionView
+instanceKlass java/util/concurrent/ConcurrentHashMap$CounterCell
+instanceKlass java/util/concurrent/ConcurrentHashMap$Node
+instanceKlass java/util/concurrent/locks/ReentrantLock
+instanceKlass java/util/concurrent/locks/Lock
+instanceKlass java/util/concurrent/ConcurrentMap
+instanceKlass sun/util/locale/LocaleObjectCache
+instanceKlass java/util/Locale
+instanceKlass java/lang/reflect/Array
+instanceKlass java/nio/charset/CoderResult$Cache
+instanceKlass java/nio/charset/CoderResult
+instanceKlass java/nio/charset/CharsetDecoder
+instanceKlass sun/nio/cs/ArrayDecoder
+instanceKlass java/io/Reader
+instanceKlass java/lang/Readable
+instanceKlass sun/misc/MetaIndex
+instanceKlass sun/misc/Launcher$ExtClassLoader$1
+instanceKlass java/util/StringTokenizer
+instanceKlass java/net/URLClassLoader$7
+instanceKlass sun/misc/JavaNetAccess
+instanceKlass java/lang/ClassLoader$ParallelLoaders
+instanceKlass sun/security/util/Debug
+instanceKlass sun/misc/Launcher$Factory
+instanceKlass java/net/URLStreamHandlerFactory
+instanceKlass java/lang/Compiler$1
+instanceKlass java/lang/Compiler
+instanceKlass java/lang/System$2
+instanceKlass sun/misc/JavaLangAccess
+instanceKlass sun/io/Win32ErrorMode
+instanceKlass sun/misc/OSEnvironment
+instanceKlass java/lang/Integer$IntegerCache
+instanceKlass sun/misc/NativeSignalHandler
+instanceKlass sun/misc/Signal
+instanceKlass java/lang/Terminator$1
+instanceKlass sun/misc/SignalHandler
+instanceKlass java/lang/Terminator
+instanceKlass java/lang/ClassLoader$NativeLibrary
+instanceKlass java/io/ExpiringCache$Entry
+instanceKlass java/lang/ClassLoader$3
+instanceKlass java/nio/file/Path
+instanceKlass java/nio/file/Watchable
+instanceKlass java/lang/Enum
+instanceKlass java/io/ExpiringCache
+instanceKlass java/io/FileSystem
+instanceKlass java/io/DefaultFileSystem
+instanceKlass java/nio/Bits$1
+instanceKlass sun/misc/JavaNioAccess
+instanceKlass java/nio/ByteOrder
+instanceKlass java/nio/Bits
+instanceKlass java/nio/charset/CodingErrorAction
+instanceKlass java/nio/charset/CharsetEncoder
+instanceKlass sun/nio/cs/ArrayEncoder
+instanceKlass sun/reflect/ReflectionFactory$1
+instanceKlass java/lang/Class$1
+instanceKlass sun/nio/cs/HistoricallyNamedCharset
+instanceKlass java/util/Arrays
+instanceKlass sun/security/action/GetPropertyAction
+instanceKlass java/lang/ThreadLocal
+instanceKlass java/nio/charset/spi/CharsetProvider
+instanceKlass java/nio/charset/Charset
+instanceKlass java/io/Writer
+instanceKlass sun/reflect/misc/ReflectUtil
+instanceKlass java/lang/reflect/ReflectAccess
+instanceKlass sun/reflect/LangReflectAccess
+instanceKlass java/lang/reflect/Modifier
+instanceKlass sun/reflect/annotation/AnnotationType
+instanceKlass java/lang/Class$AnnotationData
+instanceKlass sun/reflect/generics/repository/AbstractRepository
+instanceKlass java/lang/Class$Atomic
+instanceKlass java/lang/Class$ReflectionData
+instanceKlass java/lang/Class$3
+instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
+instanceKlass java/security/PrivilegedExceptionAction
+instanceKlass java/util/concurrent/atomic/AtomicReferenceFieldUpdater
+instanceKlass java/io/OutputStream
+instanceKlass java/io/Flushable
+instanceKlass java/io/FileDescriptor$1
+instanceKlass sun/misc/JavaIOFileDescriptorAccess
+instanceKlass java/io/FileDescriptor
+instanceKlass sun/misc/Version
+instanceKlass java/lang/Runtime
+instanceKlass java/util/Hashtable$Enumerator
+instanceKlass java/util/Iterator
+instanceKlass java/util/Enumeration
+instanceKlass java/util/Objects
+instanceKlass java/util/Collections$SynchronizedCollection
+instanceKlass java/lang/Math
+instanceKlass java/util/Hashtable$Entry
+instanceKlass sun/misc/VM
+instanceKlass java/util/HashMap$Node
+instanceKlass java/util/Map$Entry
+instanceKlass sun/reflect/Reflection
+instanceKlass sun/misc/SharedSecrets
+instanceKlass java/lang/ref/Reference$1
+instanceKlass sun/misc/JavaLangRefAccess
+instanceKlass java/lang/ref/ReferenceQueue$Lock
+instanceKlass java/lang/ref/ReferenceQueue
+instanceKlass java/util/Collections$UnmodifiableCollection
+instanceKlass java/util/AbstractMap
+instanceKlass java/util/Set
+instanceKlass java/util/Collections
+instanceKlass java/lang/ref/Reference$Lock
+instanceKlass sun/reflect/ReflectionFactory
+instanceKlass java/util/AbstractCollection
+instanceKlass java/util/RandomAccess
+instanceKlass java/util/List
+instanceKlass java/util/Collection
+instanceKlass java/lang/Iterable
+instanceKlass java/security/cert/Certificate
+instanceKlass sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+instanceKlass java/security/PrivilegedAction
+instanceKlass java/security/AccessController
+instanceKlass java/security/Permission
+instanceKlass java/security/Guard
+instanceKlass java/lang/String$CaseInsensitiveComparator
+instanceKlass java/util/Comparator
+instanceKlass java/io/ObjectStreamField
+instanceKlass java/lang/Number
+instanceKlass java/lang/Character
+instanceKlass java/lang/Boolean
+instanceKlass java/nio/Buffer
+instanceKlass java/lang/StackTraceElement
+instanceKlass java/security/CodeSource
+instanceKlass sun/misc/Launcher
+instanceKlass java/util/jar/Manifest
+instanceKlass java/net/URL
+instanceKlass java/io/File
+instanceKlass java/io/InputStream
+instanceKlass java/io/Closeable
+instanceKlass java/lang/AutoCloseable
+instanceKlass sun/misc/Unsafe
+instanceKlass java/lang/AbstractStringBuilder
+instanceKlass java/lang/Appendable
+instanceKlass java/lang/invoke/CallSite
+instanceKlass java/lang/invoke/MethodType
+instanceKlass java/lang/invoke/LambdaForm
+instanceKlass java/lang/invoke/MethodHandleNatives
+instanceKlass java/lang/invoke/MemberName
+instanceKlass java/lang/invoke/MethodHandle
+instanceKlass sun/reflect/CallerSensitive
+instanceKlass java/lang/annotation/Annotation
+instanceKlass sun/reflect/FieldAccessor
+instanceKlass sun/reflect/ConstantPool
+instanceKlass sun/reflect/ConstructorAccessor
+instanceKlass sun/reflect/MethodAccessor
+instanceKlass sun/reflect/MagicAccessorImpl
+instanceKlass java/lang/reflect/Parameter
+instanceKlass java/lang/reflect/Member
+instanceKlass java/lang/reflect/AccessibleObject
+instanceKlass java/util/Dictionary
+instanceKlass java/util/Map
+instanceKlass java/lang/ThreadGroup
+instanceKlass java/lang/Thread$UncaughtExceptionHandler
+instanceKlass java/lang/Thread
+instanceKlass java/lang/Runnable
+instanceKlass java/lang/ref/Reference
+instanceKlass java/security/AccessControlContext
+instanceKlass java/security/ProtectionDomain
+instanceKlass java/lang/SecurityManager
+instanceKlass java/lang/Throwable
+instanceKlass java/lang/System
+instanceKlass java/lang/ClassLoader
+instanceKlass java/lang/Cloneable
+instanceKlass java/lang/Class
+instanceKlass java/lang/reflect/Type
+instanceKlass java/lang/reflect/GenericDeclaration
+instanceKlass java/lang/reflect/AnnotatedElement
+instanceKlass java/lang/String
+instanceKlass java/lang/CharSequence
+instanceKlass java/lang/Comparable
+instanceKlass java/io/Serializable
+ciInstanceKlass java/lang/Object 1 1 78 3 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 7 7 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/io/Serializable 1 1 7 1 1 1 100 100 1
+ciInstanceKlass java/lang/String 1 1 540 3 3 3 3 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 7 7 100 100 100 7 7 100 100 7 100 100 100 7 100 7 7 100 7 7 100 7 100 100 7 100 7 100 100 7 7 7 100 100 7 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1
+staticfield java/lang/String serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField;
+staticfield java/lang/String CASE_INSENSITIVE_ORDER Ljava/util/Comparator; java/lang/String$CaseInsensitiveComparator
+ciInstanceKlass java/lang/Class 1 1 1190 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 8 8 8 8 8 7 7 7 100 100 100 7 7 100 7 100 7 7 7 7 100 7 7 100 7 100 100 100 7 100 100 100 100 100 100 7 7 7 7 100 100 100 7 7 7 100 100 7 7 100 100 7 7 100 100 100 7 7 100 100 7 7 7 7 7 7 7 7 7 100 7 7 100 7 7 100 100 7 7 7 7 100 100 100 7 7 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1
+staticfield java/lang/Class serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField;
+ciInstanceKlass java/lang/Cloneable 1 0 7 1 1 1 100 100 1
+instanceKlass org/jboss/remoting/loading/RemotingClassLoader
+instanceKlass org/jboss/remoting/loading/ClassByteClassLoader
+instanceKlass net/java/truecommons/services/UnifiedClassLoader
+instanceKlass java/util/ResourceBundle$RBClassLoader
+instanceKlass sun/reflect/DelegatingClassLoader
+instanceKlass java/security/SecureClassLoader
+ciInstanceKlass java/lang/ClassLoader 1 1 842 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 7 100 100 100 100 7 100 100 7 7 7 7 100 7 100 100 100 100 7 7 100 100 7 100 7 7 100 100 100 100 7 100 100 7 7 100 7 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 1
+staticfield java/lang/ClassLoader nocerts [Ljava/security/cert/Certificate; 0 [Ljava/security/cert/Certificate;
+ciInstanceKlass java/lang/System 1 1 369 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 100 7 100 100 100 100 100 100 7 7 100 100 7 100 100 7 7 7 7 100 100 100 7 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+staticfield java/lang/System in Ljava/io/InputStream; java/io/BufferedInputStream
+staticfield java/lang/System out Ljava/io/PrintStream; java/io/PrintStream
+staticfield java/lang/System err Ljava/io/PrintStream; java/io/PrintStream
+instanceKlass scala/util/control/BreakControl
+instanceKlass scala/runtime/Nothing$
+instanceKlass scala/runtime/NonLocalReturnControl
+instanceKlass java/lang/Exception
+instanceKlass java/lang/Error
+ciInstanceKlass java/lang/Throwable 1 1 327 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 100 100 100 100 100 7 100 100 100 100 7 7 100 7 100 100 100 7 100 100 7 7 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 1 1 1 1 1
+staticfield java/lang/Throwable UNASSIGNED_STACK [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement;
+staticfield java/lang/Throwable SUPPRESSED_SENTINEL Ljava/util/List; java/util/Collections$UnmodifiableRandomAccessList
+staticfield java/lang/Throwable EMPTY_THROWABLE_ARRAY [Ljava/lang/Throwable; 0 [Ljava/lang/Throwable;
+staticfield java/lang/Throwable $assertionsDisabled Z 1
+instanceKlass scala/NotImplementedError
+instanceKlass net/java/truecommons/shed/ControlFlowException
+instanceKlass java/util/ServiceConfigurationError
+instanceKlass java/lang/AssertionError
+instanceKlass java/lang/VirtualMachineError
+instanceKlass java/lang/LinkageError
+instanceKlass java/lang/ThreadDeath
+ciInstanceKlass java/lang/Error 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1
+ciInstanceKlass java/lang/ThreadDeath 0 0 18 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 10 1
+instanceKlass javax/sound/sampled/UnsupportedAudioFileException
+instanceKlass javax/sound/sampled/LineUnavailableException
+instanceKlass org/jboss/remoting/transport/socket/ServerThread$EvictionException
+instanceKlass org/jboss/remoting/transport/socket/ServerThread$AcknowledgeFailure
+instanceKlass java/util/TooManyListenersException
+instanceKlass org/jboss/remoting/callback/HandleCallbackException
+instanceKlass org/jboss/remoting/ClientDisconnectedException
+instanceKlass org/jboss/remoting/ServerInvoker$InvalidStateException
+instanceKlass javax/management/JMException
+instanceKlass org/jboss/remoting/marshal/InvalidMarshallingResource
+instanceKlass org/jboss/remoting/InvalidConfigurationException
+instanceKlass java/util/concurrent/TimeoutException
+instanceKlass java/util/concurrent/ExecutionException
+instanceKlass java/awt/FontFormatException
+instanceKlass java/util/concurrent/BrokenBarrierException
+instanceKlass org/codehaus/classworlds/ClassWorldException
+instanceKlass java/security/GeneralSecurityException
+instanceKlass mage/MageException
+instanceKlass java/lang/CloneNotSupportedException
+instanceKlass java/sql/SQLException
+instanceKlass com/google/common/base/internal/Finalizer$ShutDown
+instanceKlass javax/swing/text/BadLocationException
+instanceKlass java/awt/print/PrinterException
+instanceKlass java/awt/AWTException
+instanceKlass java/text/ParseException
+instanceKlass java/util/prefs/BackingStoreException
+instanceKlass java/net/URISyntaxException
+instanceKlass mage/remote/MageRemoteException
+instanceKlass java/beans/PropertyVetoException
+instanceKlass org/apache/log4j/config/PropertySetterException
+instanceKlass java/beans/IntrospectionException
+instanceKlass java/security/PrivilegedActionException
+instanceKlass java/io/IOException
+instanceKlass java/lang/InterruptedException
+instanceKlass java/lang/ReflectiveOperationException
+instanceKlass java/lang/RuntimeException
+ciInstanceKlass java/lang/Exception 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 1 12 12 12 12 12 10 10 10 10 10 1
+instanceKlass org/tritonus/share/TDebug$AssertException
+instanceKlass scala/UninitializedError
+instanceKlass mage/client/deck/generator/DeckGenerator$DeckGeneratorException
+instanceKlass org/jboss/util/threadpool/ThreadPoolStoppedException
+instanceKlass org/jboss/util/threadpool/ThreadPoolFullException
+instanceKlass org/jdesktop/beansbinding/PropertyResolutionException
+instanceKlass org/jboss/remoting/ConnectionFailedException
+instanceKlass java/nio/BufferUnderflowException
+instanceKlass org/jboss/remoting/CannotConnectException
+instanceKlass org/h2/message/DbException
+instanceKlass java/lang/reflect/UndeclaredThrowableException
+instanceKlass java/awt/image/RasterFormatException
+instanceKlass com/google/common/collect/ComputationException
+instanceKlass scala/MatchError
+instanceKlass java/util/NoSuchElementException
+instanceKlass java/lang/UnsupportedOperationException
+instanceKlass java/lang/IndexOutOfBoundsException
+instanceKlass java/lang/IllegalStateException
+instanceKlass java/util/MissingResourceException
+instanceKlass java/lang/invoke/WrongMethodTypeException
+instanceKlass java/lang/SecurityException
+instanceKlass java/lang/IllegalArgumentException
+instanceKlass java/lang/ArithmeticException
+instanceKlass java/lang/NullPointerException
+instanceKlass java/lang/IllegalMonitorStateException
+instanceKlass java/lang/ArrayStoreException
+instanceKlass java/lang/ClassCastException
+ciInstanceKlass java/lang/RuntimeException 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 1 12 12 12 12 12 10 10 10 10 10 1
+ciInstanceKlass java/lang/SecurityManager 0 0 375 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/security/ProtectionDomain 1 1 272 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 100 100 100 7 7 100 7 7 100 7 7 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1
+staticfield java/security/ProtectionDomain debug Lsun/security/util/Debug; null
+ciInstanceKlass java/security/AccessControlContext 1 1 305 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 100 7 100 100 7 100 100 7 100 100 7 100 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1
+instanceKlass sun/reflect/misc/MethodUtil
+instanceKlass java/net/URLClassLoader
+ciInstanceKlass java/security/SecureClassLoader 1 1 130 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/security/SecureClassLoader debug Lsun/security/util/Debug; null
+instanceKlass java/lang/IllegalAccessException
+instanceKlass java/lang/NoSuchFieldException
+instanceKlass java/lang/InstantiationException
+instanceKlass java/lang/NoSuchMethodException
+instanceKlass java/lang/reflect/InvocationTargetException
+instanceKlass java/lang/ClassNotFoundException
+ciInstanceKlass java/lang/ReflectiveOperationException 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 12 10 10 10 10 1
+ciInstanceKlass java/lang/ClassNotFoundException 1 1 32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 1 1 1 12 12 12 9 10 10 1
+instanceKlass java/lang/ExceptionInInitializerError
+instanceKlass java/lang/UnsatisfiedLinkError
+instanceKlass java/lang/IncompatibleClassChangeError
+instanceKlass java/lang/BootstrapMethodError
+instanceKlass java/lang/NoClassDefFoundError
+ciInstanceKlass java/lang/LinkageError 1 1 24 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 1 12 12 12 10 10 10 1
+ciInstanceKlass java/lang/NoClassDefFoundError 0 0 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/ClassCastException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 12 12 10 10 1
+ciInstanceKlass java/lang/ArrayStoreException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+instanceKlass java/lang/InternalError
+instanceKlass java/lang/StackOverflowError
+instanceKlass java/lang/OutOfMemoryError
+ciInstanceKlass java/lang/VirtualMachineError 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 1 12 12 12 12 10 10 10 10 1
+ciInstanceKlass java/lang/OutOfMemoryError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/StackOverflowError 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/lang/IllegalMonitorStateException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+instanceKlass java/lang/ref/PhantomReference
+instanceKlass java/lang/ref/FinalReference
+instanceKlass java/lang/ref/WeakReference
+instanceKlass java/lang/ref/SoftReference
+ciInstanceKlass java/lang/ref/Reference 1 1 134 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1
+instanceKlass javax/swing/plaf/nimbus/ImageCache$PixelCountSoftReference
+instanceKlass sun/misc/SoftCache$ValueCell
+instanceKlass com/google/common/base/FinalizableSoftReference
+instanceKlass sun/font/FontDesignMetrics$KeyReference
+instanceKlass sun/font/StrikeCache$SoftDisposerRef
+instanceKlass sun/util/locale/provider/LocaleResources$ResourceReference
+instanceKlass java/util/ResourceBundle$BundleReference
+instanceKlass java/lang/invoke/LambdaFormEditor$Transform
+instanceKlass sun/util/locale/LocaleObjectCache$CacheEntry
+ciInstanceKlass java/lang/ref/SoftReference 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1
+instanceKlass net/java/truecommons/shed/Link$Type$Weak
+instanceKlass java/io/ObjectStreamClass$FieldReflectorKey
+instanceKlass java/io/ObjectStreamClass$WeakClassKey
+instanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler$DocReference
+instanceKlass sun/nio/ch/SharedFileLockTable$FileLockReference
+instanceKlass java/lang/reflect/WeakCache$CacheValue
+instanceKlass java/lang/reflect/Proxy$Key1
+instanceKlass java/lang/reflect/WeakCache$CacheKey
+instanceKlass java/util/logging/LogManager$LoggerWeakRef
+instanceKlass com/google/common/base/FinalizableWeakReference
+instanceKlass javax/swing/ActionPropertyChangeListener$OwnedWeakReference
+instanceKlass javax/swing/text/GapContent$MarkData
+instanceKlass javax/swing/plaf/synth/SynthLookAndFeel$AATextListener
+instanceKlass javax/swing/plaf/metal/MetalLookAndFeel$AATextListener
+instanceKlass java/beans/WeakIdentityMap$Entry
+instanceKlass java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry
+instanceKlass java/util/ResourceBundle$LoaderReference
+instanceKlass java/lang/ThreadLocal$ThreadLocalMap$Entry
+instanceKlass java/lang/ClassValue$Entry
+instanceKlass java/util/WeakHashMap$Entry
+ciInstanceKlass java/lang/ref/WeakReference 1 1 20 1 1 1 1 1 1 1 1 7 100 1 1 1 1 12 12 10 10 1
+instanceKlass java/lang/ref/Finalizer
+ciInstanceKlass java/lang/ref/FinalReference 1 1 16 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1
+instanceKlass org/h2/util/CloseWatcher
+instanceKlass sun/misc/Cleaner
+ciInstanceKlass java/lang/ref/PhantomReference 1 1 19 1 1 1 1 1 1 1 1 1 1 100 7 1 1 1 12 10 1
+ciInstanceKlass sun/misc/Cleaner 1 1 74 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 11 1
+staticfield sun/misc/Cleaner dummyQueue Ljava/lang/ref/ReferenceQueue; java/lang/ref/ReferenceQueue
+ciInstanceKlass java/lang/ref/Finalizer 1 1 148 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 100 7 7 100 100 100 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1
+staticfield java/lang/ref/Finalizer lock Ljava/lang/Object; java/lang/Object
+instanceKlass org/jboss/remoting/transport/socket/ServerThread
+instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$ControlMonitorTimerTask$1
+instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$SecondaryServerSocketThread
+instanceKlass org/jboss/remoting/transport/bisocket/BisocketServerInvoker$ControlConnectionThread
+instanceKlass sun/awt/image/ImageFetcher
+instanceKlass java/util/TimerThread
+instanceKlass org/h2/mvstore/MVStore$BackgroundWriterThread
+instanceKlass org/h2/engine/DatabaseCloser
+instanceKlass com/google/common/base/internal/Finalizer
+instanceKlass java/util/logging/LogManager$Cleaner
+instanceKlass javax/swing/plaf/basic/BasicDirectoryModel$LoadFilesThread
+instanceKlass net/java/truevfs/kernel/impl/ShutdownFuse$$anon$1
+instanceKlass java/awt/EventDispatchThread
+instanceKlass java/lang/ref/Finalizer$FinalizerThread
+instanceKlass java/lang/ref/Reference$ReferenceHandler
+ciInstanceKlass java/lang/Thread 1 1 539 3 3 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 100 100 100 100 100 100 100 100 100 7 100 100 7 7 7 100 7 100 7 7 100 100 100 100 100 100 7 7 100 100 100 100 100 100 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1
+staticfield java/lang/Thread EMPTY_STACK_TRACE [Ljava/lang/StackTraceElement; 0 [Ljava/lang/StackTraceElement;
+staticfield java/lang/Thread SUBCLASS_IMPLEMENTATION_PERMISSION Ljava/lang/RuntimePermission; java/lang/RuntimePermission
+ciInstanceKlass java/lang/ThreadGroup 1 1 268 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 100 7 100 100 7 7 100 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1
+instanceKlass scala/collection/convert/Wrappers$DictionaryWrapper
+instanceKlass java/util/Hashtable
+ciInstanceKlass java/util/Dictionary 1 1 31 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 1 1 1 1 1 1 12 10 1
+instanceKlass javax/swing/JSlider$1SmartHashtable
+instanceKlass javax/swing/UIDefaults
+instanceKlass java/util/Properties
+ciInstanceKlass java/util/Hashtable 1 1 402 3 3 4 4 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 100 100 100 7 100 7 7 100 7 7 7 7 100 7 7 7 7 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1
+instanceKlass java/security/Provider
+instanceKlass org/h2/util/SortedProperties
+ciInstanceKlass java/util/Properties 1 1 263 3 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 100 100 7 100 100 100 100 100 7 7 7 100 7 7 7 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1
+staticfield java/util/Properties hexDigit [C 16
+instanceKlass java/lang/reflect/Executable
+instanceKlass java/lang/reflect/Field
+ciInstanceKlass java/lang/reflect/AccessibleObject 1 1 144 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 7 7 100 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1
+staticfield java/lang/reflect/AccessibleObject ACCESS_PERMISSION Ljava/security/Permission; java/lang/reflect/ReflectPermission
+staticfield java/lang/reflect/AccessibleObject reflectionFactory Lsun/reflect/ReflectionFactory; sun/reflect/ReflectionFactory
+ciInstanceKlass java/lang/reflect/Field 1 1 362 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 100 7 7 7 100 100 100 7 7 7 7 7 7 7 7 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1
+ciInstanceKlass java/lang/reflect/Parameter 0 0 210 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1
+instanceKlass java/lang/reflect/Constructor
+instanceKlass java/lang/reflect/Method
+ciInstanceKlass java/lang/reflect/Executable 1 1 378 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 100 100 7 100 7 7 7 7 100 100 100 7 100 7 100 7 7 7 7 7 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1
+ciInstanceKlass java/lang/reflect/Method 1 1 346 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 100 7 7 7 100 7 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1
+ciInstanceKlass java/lang/reflect/Constructor 1 1 330 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 100 100 100 100 100 7 7 100 100 100 100 100 7 7 7 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1
+instanceKlass sun/reflect/FieldAccessorImpl
+instanceKlass sun/reflect/ConstructorAccessorImpl
+instanceKlass sun/reflect/MethodAccessorImpl
+ciInstanceKlass sun/reflect/MagicAccessorImpl 1 1 13 1 1 1 1 1 1 1 7 100 12 10 1
+instanceKlass sun/reflect/GeneratedMethodAccessor14
+instanceKlass sun/reflect/GeneratedMethodAccessor13
+instanceKlass sun/reflect/GeneratedMethodAccessor12
+instanceKlass sun/reflect/GeneratedMethodAccessor11
+instanceKlass sun/reflect/GeneratedMethodAccessor10
+instanceKlass sun/reflect/GeneratedMethodAccessor9
+instanceKlass sun/reflect/GeneratedMethodAccessor8
+instanceKlass sun/reflect/GeneratedMethodAccessor7
+instanceKlass sun/reflect/GeneratedMethodAccessor6
+instanceKlass sun/reflect/GeneratedMethodAccessor5
+instanceKlass sun/reflect/GeneratedMethodAccessor4
+instanceKlass sun/reflect/GeneratedMethodAccessor3
+instanceKlass sun/reflect/GeneratedMethodAccessor2
+instanceKlass sun/reflect/GeneratedMethodAccessor1
+instanceKlass sun/reflect/DelegatingMethodAccessorImpl
+instanceKlass sun/reflect/NativeMethodAccessorImpl
+ciInstanceKlass sun/reflect/MethodAccessorImpl 1 1 22 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 12 10 1
+instanceKlass sun/reflect/GeneratedConstructorAccessor7
+instanceKlass sun/reflect/GeneratedConstructorAccessor6
+instanceKlass sun/reflect/GeneratedConstructorAccessor5
+instanceKlass sun/reflect/GeneratedConstructorAccessor4
+instanceKlass sun/reflect/GeneratedConstructorAccessor3
+instanceKlass sun/reflect/GeneratedConstructorAccessor2
+instanceKlass sun/reflect/SerializationConstructorAccessorImpl
+instanceKlass sun/reflect/BootstrapConstructorAccessorImpl
+instanceKlass sun/reflect/GeneratedConstructorAccessor1
+instanceKlass sun/reflect/DelegatingConstructorAccessorImpl
+instanceKlass sun/reflect/NativeConstructorAccessorImpl
+ciInstanceKlass sun/reflect/ConstructorAccessorImpl 1 1 24 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 12 10 1
+ciInstanceKlass sun/reflect/DelegatingClassLoader 1 1 13 1 1 1 1 1 1 1 7 100 1 12 10
+ciInstanceKlass sun/reflect/ConstantPool 1 1 106 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+instanceKlass sun/reflect/UnsafeFieldAccessorImpl
+ciInstanceKlass sun/reflect/FieldAccessorImpl 1 1 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 10 1
+instanceKlass sun/reflect/UnsafeIntegerFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeBooleanFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeObjectFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl
+ciInstanceKlass sun/reflect/UnsafeFieldAccessorImpl 1 1 229 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 100 100 100 100 100 100 7 100 100 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield sun/reflect/UnsafeFieldAccessorImpl unsafe Lsun/misc/Unsafe; sun/misc/Unsafe
+instanceKlass sun/reflect/UnsafeStaticObjectFieldAccessorImpl
+instanceKlass sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl
+ciInstanceKlass sun/reflect/UnsafeStaticFieldAccessorImpl 1 1 38 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 1 1 1 1 12 12 12 12 12 9 9 10 10 10 1
+ciInstanceKlass sun/reflect/CallerSensitive 0 0 17 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1
+instanceKlass java/lang/invoke/DelegatingMethodHandle
+instanceKlass java/lang/invoke/BoundMethodHandle
+instanceKlass java/lang/invoke/DirectMethodHandle
+ciInstanceKlass java/lang/invoke/MethodHandle 1 1 438 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 7 100 100 7 7 7 100 7 7 7 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+staticfield java/lang/invoke/MethodHandle FORM_OFFSET J 20
+staticfield java/lang/invoke/MethodHandle $assertionsDisabled Z 1
+instanceKlass java/lang/invoke/DirectMethodHandle$Special
+instanceKlass java/lang/invoke/DirectMethodHandle$Accessor
+ciInstanceKlass java/lang/invoke/DirectMethodHandle 1 1 692 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 7 100 7 100 100 100 7 100 7 100 100 7 7 100 7 7 100 7 7 100 7 7 7 100 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 1 1 1 1 1
+staticfield java/lang/invoke/DirectMethodHandle IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory
+staticfield java/lang/invoke/DirectMethodHandle ACCESSOR_FORMS [Ljava/lang/invoke/LambdaForm; 132 [Ljava/lang/invoke/LambdaForm;
+staticfield java/lang/invoke/DirectMethodHandle $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/MemberName 1 1 642 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 7 7 100 100 100 7 7 100 100 100 100 100 100 100 100 100 7 100 7 7 7 7 7 100 7 7 100 100 100 100 7 100 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1
+staticfield java/lang/invoke/MemberName $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/MethodHandleNatives 1 1 427 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1
+staticfield java/lang/invoke/MethodHandleNatives COUNT_GWT Z 1
+staticfield java/lang/invoke/MethodHandleNatives $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/LambdaForm 1 1 967 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 8 100 100 100 100 7 7 100 100 100 7 100 100 100 100 100 100 100 100 7 7 7 100 7 7 100 100 100 7 100 7 100 100 7 7 7 7 7 100 100 7 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1 1 1
+staticfield java/lang/invoke/LambdaForm COMPILE_THRESHOLD I 0
+staticfield java/lang/invoke/LambdaForm INTERNED_ARGUMENTS [[Ljava/lang/invoke/LambdaForm$Name; 5 [[Ljava/lang/invoke/LambdaForm$Name;
+staticfield java/lang/invoke/LambdaForm IMPL_NAMES Ljava/lang/invoke/MemberName$Factory; java/lang/invoke/MemberName$Factory
+staticfield java/lang/invoke/LambdaForm LF_identityForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm;
+staticfield java/lang/invoke/LambdaForm LF_zeroForm [Ljava/lang/invoke/LambdaForm; 6 [Ljava/lang/invoke/LambdaForm;
+staticfield java/lang/invoke/LambdaForm NF_identity [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction;
+staticfield java/lang/invoke/LambdaForm NF_zero [Ljava/lang/invoke/LambdaForm$NamedFunction; 6 [Ljava/lang/invoke/LambdaForm$NamedFunction;
+staticfield java/lang/invoke/LambdaForm DEBUG_NAME_COUNTERS Ljava/util/HashMap; null
+staticfield java/lang/invoke/LambdaForm TRACE_INTERPRETER Z 0
+staticfield java/lang/invoke/LambdaForm $assertionsDisabled Z 1
+ciInstanceKlass java/lang/invoke/MethodType 1 1 591 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 5 0 7 100 100 100 7 100 100 7 100 7 100 100 100 100 100 7 7 7 7 100 7 7 7 7 7 7 7 7 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1
+staticfield java/lang/invoke/MethodType internTable Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet; java/lang/invoke/MethodType$ConcurrentWeakInternSet
+staticfield java/lang/invoke/MethodType NO_PTYPES [Ljava/lang/Class; 0 [Ljava/lang/Class;
+staticfield java/lang/invoke/MethodType objectOnlyTypes [Ljava/lang/invoke/MethodType; 20 [Ljava/lang/invoke/MethodType;
+staticfield java/lang/invoke/MethodType serialPersistentFields [Ljava/io/ObjectStreamField; 0 [Ljava/io/ObjectStreamField;
+staticfield java/lang/invoke/MethodType rtypeOffset J 12
+staticfield java/lang/invoke/MethodType ptypesOffset J 16
+staticfield java/lang/invoke/MethodType $assertionsDisabled Z 1
+ciInstanceKlass java/lang/BootstrapMethodError 0 0 38 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 1 1 12 12 12 12 12 10 10 10 10 10 1
+instanceKlass java/lang/invoke/VolatileCallSite
+instanceKlass java/lang/invoke/MutableCallSite
+instanceKlass java/lang/invoke/ConstantCallSite
+ciInstanceKlass java/lang/invoke/CallSite 1 1 311 8 8 8 8 8 8 8 8 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 100 100 100 100 7 100 7 100 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/invoke/CallSite GET_TARGET Ljava/lang/invoke/MethodHandle; java/lang/invoke/DirectMethodHandle
+staticfield java/lang/invoke/CallSite THROW_UCS Ljava/lang/invoke/MethodHandle; java/lang/invoke/MethodHandleImpl$AsVarargsCollector
+staticfield java/lang/invoke/CallSite TARGET_OFFSET J 12
+ciInstanceKlass java/lang/invoke/ConstantCallSite 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 1 1 12 12 12 12 12 12 9 9 10 10 10 10 10 1
+ciInstanceKlass java/lang/invoke/MutableCallSite 0 0 57 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/lang/invoke/VolatileCallSite 0 0 33 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 12 12 12 12 12 12 10 10 10 10 10 10 1
+instanceKlass java/lang/StringBuilder
+instanceKlass java/lang/StringBuffer
+ciInstanceKlass java/lang/AbstractStringBuilder 1 1 318 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 7 100 100 100 7 7 7 100 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1
+ciInstanceKlass java/lang/StringBuffer 1 1 371 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 7 7 100 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+staticfield java/lang/StringBuffer serialPersistentFields [Ljava/io/ObjectStreamField; 3 [Ljava/io/ObjectStreamField;
+ciInstanceKlass java/lang/StringBuilder 1 1 326 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+ciInstanceKlass sun/misc/Unsafe 1 1 389 8 8 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 7 100 100 7 100 7 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield sun/misc/Unsafe theUnsafe Lsun/misc/Unsafe; sun/misc/Unsafe
+staticfield sun/misc/Unsafe ARRAY_BOOLEAN_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_BYTE_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_SHORT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_CHAR_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_INT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_LONG_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_FLOAT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_DOUBLE_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_OBJECT_BASE_OFFSET I 16
+staticfield sun/misc/Unsafe ARRAY_BOOLEAN_INDEX_SCALE I 1
+staticfield sun/misc/Unsafe ARRAY_BYTE_INDEX_SCALE I 1
+staticfield sun/misc/Unsafe ARRAY_SHORT_INDEX_SCALE I 2
+staticfield sun/misc/Unsafe ARRAY_CHAR_INDEX_SCALE I 2
+staticfield sun/misc/Unsafe ARRAY_INT_INDEX_SCALE I 4
+staticfield sun/misc/Unsafe ARRAY_LONG_INDEX_SCALE I 8
+staticfield sun/misc/Unsafe ARRAY_FLOAT_INDEX_SCALE I 4
+staticfield sun/misc/Unsafe ARRAY_DOUBLE_INDEX_SCALE I 8
+staticfield sun/misc/Unsafe ARRAY_OBJECT_INDEX_SCALE I 4
+staticfield sun/misc/Unsafe ADDRESS_SIZE I 8
+instanceKlass com/sun/media/sound/RIFFReader
+instanceKlass javax/sound/sampled/AudioInputStream
+instanceKlass org/apache/commons/compress/compressors/CompressorInputStream
+instanceKlass net/java/truecommons/io/ChannelInputStream
+instanceKlass net/java/truecommons/io/DecoratingInputStream
+instanceKlass org/jboss/remoting/stream/StreamHandler
+instanceKlass java/io/ObjectInputStream$PeekInputStream
+instanceKlass java/io/ObjectInputStream$BlockDataInputStream
+instanceKlass org/h2/util/AutoCloseInputStream
+instanceKlass org/h2/mvstore/StreamStore$Stream
+instanceKlass org/h2/store/CountingReaderInputStream
+instanceKlass java/io/ObjectInputStream
+instanceKlass org/h2/store/fs/FileChannelInputStream
+instanceKlass com/sun/imageio/plugins/common/InputStreamAdapter
+instanceKlass java/io/SequenceInputStream
+instanceKlass sun/java2d/cmm/ProfileDeferralInfo
+instanceKlass java/util/zip/ZipFile$ZipFileInputStream
+instanceKlass java/io/FilterInputStream
+instanceKlass java/io/FileInputStream
+instanceKlass java/io/ByteArrayInputStream
+ciInstanceKlass java/io/InputStream 1 1 61 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 100 100 7 100 100 100 7 12 12 12 12 12 10 10 10 10 10 10 10 1
+ciInstanceKlass java/io/ByteArrayInputStream 1 1 62 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 100 100 100 7 1 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 1
+instanceKlass net/java/truevfs/access/TFile
+instanceKlass sun/awt/shell/ShellFolder
+ciInstanceKlass java/io/File 1 1 578 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 7 100 100 7 7 100 100 100 100 100 100 7 100 100 100 100 100 7 100 100 100 100 7 7 7 100 100 7 100 100 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1 1
+staticfield java/io/File fs Ljava/io/FileSystem; java/io/WinNTFileSystem
+staticfield java/io/File separatorChar C 92
+staticfield java/io/File separator Ljava/lang/String; "\"
+staticfield java/io/File pathSeparatorChar C 59
+staticfield java/io/File pathSeparator Ljava/lang/String; ";"
+staticfield java/io/File PATH_OFFSET J 16
+staticfield java/io/File PREFIX_LENGTH_OFFSET J 12
+staticfield java/io/File UNSAFE Lsun/misc/Unsafe; sun/misc/Unsafe
+staticfield java/io/File $assertionsDisabled Z 1
+instanceKlass org/codehaus/classworlds/RealmClassLoader
+instanceKlass sun/misc/Launcher$ExtClassLoader
+instanceKlass sun/misc/Launcher$AppClassLoader
+ciInstanceKlass java/net/URLClassLoader 1 1 522 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 100 100 100 7 7 7 100 100 7 100 100 100 7 7 7 100 7 100 7 7 7 7 7 100 100 100 7 7 100 100 100 7 7 7 7 100 7 100 100 100 7 7 7 100 7 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11
+ciInstanceKlass java/net/URL 1 1 550 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 7 100 7 7 100 100 100 100 100 7 7 100 7 7 100 100 100 100 7 100 100 7 100 7 7 7 100 100 7 7 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+staticfield java/net/URL serialPersistentFields [Ljava/io/ObjectStreamField; 7 [Ljava/io/ObjectStreamField;
+ciInstanceKlass java/util/jar/Manifest 1 1 230 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 7 7 100 100 7 100 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 1 1
+ciInstanceKlass sun/misc/Launcher 1 1 218 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 100 100 100 100 100 100 7 100 7 100 7 7 100 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1
+ciInstanceKlass sun/misc/Launcher$AppClassLoader 1 1 201 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 7 100 7 100 7 7 100 100 7 100 7 100 7 100 7 7 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+staticfield sun/misc/Launcher$AppClassLoader $assertionsDisabled Z 1
+ciInstanceKlass sun/misc/Launcher$ExtClassLoader 1 1 209 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 7 100 7 7 7 7 7 100 7 100 100 100 7 7 7 7 7 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+ciInstanceKlass java/security/CodeSource 1 1 322 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 100 100 7 100 100 100 100 7 100 7 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1
+ciInstanceKlass java/lang/StackTraceElement 1 1 98 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 7 7 7 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 1
+instanceKlass java/nio/ShortBuffer
+instanceKlass java/nio/IntBuffer
+instanceKlass java/nio/LongBuffer
+instanceKlass java/nio/CharBuffer
+instanceKlass java/nio/ByteBuffer
+ciInstanceKlass java/nio/Buffer 1 1 103 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 7 100 7 100 7 100 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/lang/Boolean 1 1 110 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 7 100 7 7 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/lang/Boolean TRUE Ljava/lang/Boolean; java/lang/Boolean
+staticfield java/lang/Boolean FALSE Ljava/lang/Boolean; java/lang/Boolean
+staticfield java/lang/Boolean TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Character 1 1 459 3 3 3 3 3 3 3 3 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 0 5 0 100 100 7 7 100 100 100 7 100 7 100 100 100 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1
+staticfield java/lang/Character TYPE Ljava/lang/Class; java/lang/Class
+staticfield java/lang/Character $assertionsDisabled Z 1
+instanceKlass scala/math/ScalaNumber
+instanceKlass java/math/BigDecimal
+instanceKlass java/math/BigInteger
+instanceKlass java/util/concurrent/atomic/AtomicLong
+instanceKlass java/util/concurrent/atomic/AtomicInteger
+instanceKlass java/lang/Long
+instanceKlass java/lang/Integer
+instanceKlass java/lang/Short
+instanceKlass java/lang/Byte
+instanceKlass java/lang/Double
+instanceKlass java/lang/Float
+ciInstanceKlass java/lang/Number 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 7 12 12 10 10 1
+ciInstanceKlass java/lang/Float 1 1 169 3 3 3 4 4 4 4 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 4 4 5 0 7 100 100 7 100 7 100 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/lang/Float TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Double 1 1 223 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 7 100 7 100 100 7 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/lang/Double TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Byte 1 1 153 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 7 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Byte TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Short 1 1 159 3 3 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 5 0 7 100 100 7 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Short TYPE Ljava/lang/Class; java/lang/Class
+ciInstanceKlass java/lang/Integer 1 1 309 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 100 7 7 100 100 7 7 100 7 100 7 7 100 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Integer TYPE Ljava/lang/Class; java/lang/Class
+staticfield java/lang/Integer digits [C 36
+staticfield java/lang/Integer DigitTens [C 100
+staticfield java/lang/Integer DigitOnes [C 100
+staticfield java/lang/Integer sizeTable [I 10
+ciInstanceKlass java/lang/Long 1 1 356 3 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 100 7 7 100 100 7 7 7 7 100 7 100 100 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Long TYPE Ljava/lang/Class; java/lang/Class
+instanceKlass com/google/common/collect/NullOutputException
+ciInstanceKlass java/lang/NullPointerException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 12 12 10 10 1
+ciInstanceKlass java/lang/ArithmeticException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 12 12 10 10 1
+ciInstanceKlass java/util/Collection 1 1 87 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 100 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 10 10 10 11 11 11 11 11 11 1
+instanceKlass scala/collection/convert/Wrappers$IterableWrapper
+instanceKlass java/util/LinkedHashMap$LinkedValues
+instanceKlass java/util/IdentityHashMap$Values
+instanceKlass java/util/AbstractQueue
+instanceKlass java/util/TreeMap$Values
+instanceKlass java/util/HashMap$Values
+instanceKlass java/util/ArrayDeque
+instanceKlass java/util/AbstractSet
+instanceKlass java/util/AbstractList
+ciInstanceKlass java/util/AbstractCollection 1 1 143 3 3 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 7 100 100 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1
+instanceKlass sun/security/jca/ProviderList$3
+instanceKlass java/util/ArrayList$SubList
+instanceKlass sun/awt/util/IdentityArrayList
+instanceKlass java/util/SubList
+instanceKlass java/util/Arrays$ArrayList
+instanceKlass java/util/AbstractSequentialList
+instanceKlass java/util/Collections$EmptyList
+instanceKlass java/util/ArrayList
+instanceKlass java/util/Vector
+ciInstanceKlass java/util/AbstractList 1 1 167 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 7 100 7 7 100 100 7 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 1 1
+instanceKlass org/apache/log4j/ProvisionNode
+instanceKlass java/util/Stack
+ciInstanceKlass java/util/Vector 1 1 353 3 3 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 7 100 7 7 100 100 100 100 100 7 7 7 7 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 1 1 1 1 1
+ciInstanceKlass java/util/Stack 1 1 56 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 1 1 1 1 12 12 12 12 12 12 12 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/util/Collections 1 1 675 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 100 100 100 100 100 100 100 100 7 7 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 7 7 7 100 7 7 100 100 7 100 100 100 100 100 7 100 100 7 7 100 100 7 100 7 100 100 100 7 7 100 100 7 100 100 7 100 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+staticfield java/util/Collections EMPTY_SET Ljava/util/Set; java/util/Collections$EmptySet
+staticfield java/util/Collections EMPTY_LIST Ljava/util/List; java/util/Collections$EmptyList
+staticfield java/util/Collections EMPTY_MAP Ljava/util/Map; java/util/Collections$EmptyMap
+ciInstanceKlass java/util/Set 1 1 48 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 12 10 1
+instanceKlass java/util/EnumMap$EntrySet
+instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap$EntrySet
+instanceKlass com/google/common/collect/Sets$SetView
+instanceKlass java/util/TreeMap$EntrySet
+instanceKlass java/util/IdentityHashMap$KeySet
+instanceKlass java/util/Hashtable$KeySet
+instanceKlass javax/imageio/spi/PartiallyOrderedSet
+instanceKlass java/util/LinkedHashMap$LinkedKeySet
+instanceKlass java/util/TreeMap$KeySet
+instanceKlass java/util/TreeSet
+instanceKlass net/java/truecommons/shed/CanonicalStringSet
+instanceKlass java/util/EnumSet
+instanceKlass sun/util/resources/ParallelListResourceBundle$KeySet
+instanceKlass java/util/HashMap$KeySet
+instanceKlass java/util/LinkedHashMap$LinkedEntrySet
+instanceKlass java/util/HashMap$EntrySet
+instanceKlass java/lang/ProcessEnvironment$CheckedEntrySet
+instanceKlass java/util/HashSet
+instanceKlass java/util/WeakHashMap$KeySet
+instanceKlass java/util/Collections$SetFromMap
+instanceKlass java/util/Hashtable$EntrySet
+instanceKlass java/util/Collections$EmptySet
+ciInstanceKlass java/util/AbstractSet 1 1 71 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 7 100 100 7 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 10 10 10 10 10 10 10 11 11 11 11 11 11 1
+instanceKlass java/text/AttributedString$AttributeMap
+instanceKlass sun/font/AttributeMap
+instanceKlass scala/collection/convert/Wrappers$MapWrapper
+instanceKlass org/jboss/util/collection/ReferenceValueMap
+instanceKlass EDU/oswego/cs/dl/util/concurrent/ConcurrentHashMap
+instanceKlass org/jboss/serial/util/PartitionedWeakHashMap
+instanceKlass org/h2/mvstore/MVMap
+instanceKlass com/google/common/collect/CustomConcurrentHashMap$Impl
+instanceKlass java/util/IdentityHashMap
+instanceKlass sun/misc/SoftCache
+instanceKlass java/util/EnumMap
+instanceKlass java/util/TreeMap
+instanceKlass java/util/concurrent/ConcurrentHashMap
+instanceKlass sun/util/PreHashedMap
+instanceKlass java/util/WeakHashMap
+instanceKlass java/util/HashMap
+instanceKlass java/util/Collections$EmptyMap
+ciInstanceKlass java/util/AbstractMap 1 1 152 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 100 100 7 100 100 100 100 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1
+instanceKlass mage/cards/Sets
+instanceKlass org/h2/value/CaseInsensitiveMap
+instanceKlass javax/swing/UIDefaults$TextAndMnemonicHashMap
+instanceKlass java/lang/ProcessEnvironment
+instanceKlass java/util/LinkedHashMap
+ciInstanceKlass java/util/HashMap 1 1 468 3 3 4 4 4 4 4 8 8 8 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 5 0 100 7 7 100 7 7 100 100 7 100 100 7 100 100 7 100 7 100 100 100 7 100 100 7 100 7 100 100 100 100 7 100 7 7 100 100 7 7 7 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1
+instanceKlass java/util/LinkedHashMap$Entry
+ciInstanceKlass java/util/HashMap$Node 1 1 85 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 7 100 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 11 11 1
+ciInstanceKlass java/util/Hashtable$Entry 1 1 89 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 100 7 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 11 1
+ciInstanceKlass java/lang/Math 1 1 281 3 3 3 3 3 3 4 4 4 4 4 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 6 0 100 100 7 7 7 100 100 7 100 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/lang/Math $assertionsDisabled Z 1
+ciInstanceKlass java/util/Enumeration 1 0 14 1 1 1 1 1 1 1 1 1 100 100 1 1
+ciInstanceKlass java/util/Iterator 1 1 45 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 1 1 1 1 12 12 12 12 12 10 10 11 11 11 1
+ciInstanceKlass java/util/Arrays 1 1 800 3 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 100 100 100 7 7 100 100 100 7 7 100 100 7 100 100 100 7 100 100 100 100 100 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 15 15 15 15 15 16 18 18 18 18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+staticfield java/util/Arrays $assertionsDisabled Z 1
+instanceKlass mage/abilities/Modes
+instanceKlass mage/view/CardsView
+instanceKlass org/h2/util/SmallLRUCache
+instanceKlass org/h2/store/fs/FileMemData$Cache
+instanceKlass java/io/ExpiringCache$1
+ciInstanceKlass java/util/LinkedHashMap 1 1 230 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 7 7 100 7 7 100 7 100 100 7 100 7 100 100 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1 1 1 1 1
+ciInstanceKlass java/io/ExpiringCache$1 1 1 45 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 100 100 1 1 1 1 1 1 12 12 12 12 12 9 10 10 10 1
+instanceKlass java/util/HashMap$TreeNode
+ciInstanceKlass java/util/LinkedHashMap$Entry 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 1 1 1 1 1 12 10 1
+instanceKlass java/util/regex/PatternSyntaxException
+instanceKlass java/lang/NumberFormatException
+ciInstanceKlass java/lang/IllegalArgumentException 1 1 27 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 1 12 12 12 12 10 10 10 10 1
+ciInstanceKlass java/util/HashMap$TreeNode 1 1 177 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/util/HashMap$TreeNode $assertionsDisabled Z 1
+ciInstanceKlass java/awt/image/ImageObserver 1 0 27 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 100 100 1 1
+instanceKlass sun/awt/image/ToolkitImage
+instanceKlass java/awt/image/VolatileImage
+instanceKlass java/awt/image/BufferedImage
+ciInstanceKlass java/awt/Image 1 1 120 4 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 7 7 7 7 7 7 100 100 100 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield java/awt/Image UndefinedProperty Ljava/lang/Object; java/lang/Object
+instanceKlass sun/awt/HeadlessToolkit
+instanceKlass sun/awt/SunToolkit
+ciInstanceKlass java/awt/Toolkit 1 1 636 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 100 100 100 100 100 100 100 100 100 100 7 100 100 7 7 7 7 7 7 7 7 7 100 7 7 7 100 7 100 100 100 100 100 100 100 7 100 7 100 7 100 100 7 100 7 100 7 100 7 7 100 7 7 100 7 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 1 1 1 1 1 1 1
+staticfield java/awt/Toolkit $assertionsDisabled Z 1
+instanceKlass org/apache/log4j/spi/RootLogger
+ciInstanceKlass org/apache/log4j/Logger 1 1 110 10 100 100 10 10 10 10 10 10 10 9 11 9 10 10 9 10 9 8 10 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 1 1 12 12 12 7 12 12 12 12 12 7 12 7 12 12 12 12 12 12 1 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+staticfield org/apache/log4j/Logger FQCN Ljava/lang/String; "org.apache.log4j.Logger"
+instanceKlass java/util/LinkedHashMap$LinkedValueIterator
+instanceKlass java/util/LinkedHashMap$LinkedKeyIterator
+instanceKlass java/util/LinkedHashMap$LinkedEntryIterator
+ciInstanceKlass java/util/LinkedHashMap$LinkedHashIterator 1 1 80 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 7 7 7 100 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 1 1
+instanceKlass javax/swing/event/PopupMenuEvent
+instanceKlass javax/sound/sampled/LineEvent
+instanceKlass javax/swing/event/RowSorterEvent
+instanceKlass javax/swing/event/TableColumnModelEvent
+instanceKlass javax/swing/event/HyperlinkEvent
+instanceKlass javax/swing/event/UndoableEditEvent
+instanceKlass javax/swing/event/ListSelectionEvent
+instanceKlass javax/swing/event/ListDataEvent
+instanceKlass javax/swing/event/TableModelEvent
+instanceKlass javax/swing/event/CaretEvent
+instanceKlass javax/swing/event/ChangeEvent
+instanceKlass java/beans/PropertyChangeEvent
+instanceKlass java/awt/AWTEvent
+ciInstanceKlass java/util/EventObject 1 1 62 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 7 100 7 1 1 1 1 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 1
+ciInstanceKlass java/lang/NumberFormatException 1 1 39 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 7 7 7 1 1 12 12 12 12 10 10 10 10 10 10 1
+ciInstanceKlass org/apache/log4j/CategoryKey 1 1 69 10 100 100 10 10 10 9 10 9 9 8 10 10 7 10 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 12 1 1 12 12 12 7 12 12 12 1 12 12 1 12 1 1 1 1 1 1 1 1 1
+ciInstanceKlass java/lang/ArrayIndexOutOfBoundsException 1 1 38 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 100 1 1 12 12 12 12 12 10 10 10 10 10 10 1
+ciInstanceKlass sun/awt/windows/WToolkit 1 1 1081 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 8 8 100 100 100 100 100 7 100 100 7 100 7 100 100 7 100 100 100 7 100 100 100 7 100 100 7 100 7 100 100 7 7 7 7 7 100 7 100 100 7 7 7 100 7 7 7 100 100 7 7 7 7 100 100 100 100 100 100 100 100 100 7 7 100 100 100 100 7 7 7 7 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 100 7 7 7 100 7 7 7 100 100 100 7 100 100 7 7 100 100 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 15 15 15 15 15 15 16 16 16 16 18 18 18 18 18 1 1 1 1 1 1
+staticfield sun/awt/windows/WToolkit log Lsun/util/logging/PlatformLogger; sun/util/logging/PlatformLogger
+ciInstanceKlass javax/swing/event/EventListenerList 1 1 152 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 100 7 100 100 7 100 100 7 100 7 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield javax/swing/event/EventListenerList NULL_ARRAY [Ljava/lang/Object; 0 [Ljava/lang/Object;
+instanceKlass java/awt/SystemColor
+instanceKlass javax/swing/plaf/nimbus/DerivedColor
+instanceKlass javax/swing/plaf/ColorUIResource
+ciInstanceKlass java/awt/Color 1 1 329 3 4 4 4 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 6 0 6 0 100 7 100 7 100 7 100 100 100 100 7 7 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1
+staticfield java/awt/Color white Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color WHITE Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color lightGray Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color LIGHT_GRAY Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color gray Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color GRAY Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color darkGray Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color DARK_GRAY Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color black Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color BLACK Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color red Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color RED Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color pink Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color PINK Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color orange Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color ORANGE Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color yellow Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color YELLOW Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color green Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color GREEN Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color magenta Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color MAGENTA Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color cyan Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color CYAN Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color blue Ljava/awt/Color; java/awt/Color
+staticfield java/awt/Color BLUE Ljava/awt/Color; java/awt/Color
+ciInstanceKlass java/util/NoSuchElementException 1 1 21 1 1 1 1 1 1 1 1 1 1 1 5 0 7 100 12 12 10 10 1
+ciInstanceKlass javax/swing/event/ChangeListener 1 0 11 1 1 1 1 1 100 100 100 1 1
+ciInstanceKlass javax/swing/event/ChangeEvent 1 1 13 1 1 1 1 1 1 7 100 1 12 10 1
+instanceKlass javax/swing/text/WrappedPlainView$WrappedLine
+instanceKlass javax/swing/text/ComponentView
+instanceKlass javax/swing/text/GlyphView
+instanceKlass javax/swing/plaf/basic/BasicHTML$Renderer
+instanceKlass javax/swing/text/html/ImageView
+instanceKlass javax/swing/text/CompositeView
+instanceKlass javax/swing/text/PlainView
+instanceKlass javax/swing/plaf/basic/BasicTextUI$RootView
+ciInstanceKlass javax/swing/text/View 1 1 364 4 4 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 100 100 100 100 7 100 100 100 100 7 7 100 100 7 7 7 100 100 100 7 100 100 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1
+staticfield javax/swing/text/View sharedBiasReturn [Ljavax/swing/text/Position$Bias; 1 [Ljavax/swing/text/Position$Bias;
+ciInstanceKlass javax/swing/text/Document 1 0 48 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 100 100 100 1 1 1 1 1 1 1 1 1 1
+instanceKlass javax/swing/text/DefaultStyledDocument
+instanceKlass javax/swing/text/PlainDocument
+ciInstanceKlass javax/swing/text/AbstractDocument 1 1 697 3 8 8 8 8 8 8 8 8 8 8 8 8 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 8 8 8 8 100 100 100 100 100 7 100 100 100 7 100 100 100 7 100 7 100 7 100 7 100 7 100 7 7 100 100 7 7 7 7 7 100 100 100 7 7 7 7 7 100 100 7 100 100 100 7 100 100 7 100 7 7 100 100 7 7 100 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1
+staticfield javax/swing/text/AbstractDocument MultiByteProperty Ljava/lang/Object; "multiByte"
+ciInstanceKlass javax/swing/text/AbstractDocument$AttributeContext 1 0 25 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1
+instanceKlass javax/swing/text/html/StyleSheet
+ciInstanceKlass javax/swing/text/StyleContext 1 1 432 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 7 100 100 100 100 100 100 7 100 7 7 7 100 7 7 100 7 100 7 100 7 7 100 100 7 7 7 7 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1
+instanceKlass javax/swing/text/StyleConstants$ParagraphConstants
+instanceKlass javax/swing/text/StyleConstants$ColorConstants
+instanceKlass javax/swing/text/StyleConstants$FontConstants
+instanceKlass javax/swing/text/StyleConstants$CharacterConstants
+ciInstanceKlass javax/swing/text/StyleConstants 1 1 305 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 7 100 7 7 7 7 7 100 7 7 7 100 7 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1 1 1
+staticfield javax/swing/text/StyleConstants NameAttribute Ljava/lang/Object; javax/swing/text/StyleConstants
+staticfield javax/swing/text/StyleConstants ResolveAttribute Ljava/lang/Object; javax/swing/text/StyleConstants
+staticfield javax/swing/text/StyleConstants ModelAttribute Ljava/lang/Object; javax/swing/text/StyleConstants
+staticfield javax/swing/text/StyleConstants BidiLevel Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants FontFamily Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants
+staticfield javax/swing/text/StyleConstants Family Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants
+staticfield javax/swing/text/StyleConstants FontSize Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants
+staticfield javax/swing/text/StyleConstants Size Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants
+staticfield javax/swing/text/StyleConstants Bold Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants
+staticfield javax/swing/text/StyleConstants Italic Ljava/lang/Object; javax/swing/text/StyleConstants$FontConstants
+staticfield javax/swing/text/StyleConstants Underline Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants StrikeThrough Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants Superscript Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants Subscript Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants Foreground Ljava/lang/Object; javax/swing/text/StyleConstants$ColorConstants
+staticfield javax/swing/text/StyleConstants Background Ljava/lang/Object; javax/swing/text/StyleConstants$ColorConstants
+staticfield javax/swing/text/StyleConstants ComponentAttribute Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants IconAttribute Ljava/lang/Object; javax/swing/text/StyleConstants$CharacterConstants
+staticfield javax/swing/text/StyleConstants ComposedTextAttribute Ljava/lang/Object; javax/swing/text/StyleConstants
+staticfield javax/swing/text/StyleConstants FirstLineIndent Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants LeftIndent Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants RightIndent Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants LineSpacing Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants SpaceAbove Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants SpaceBelow Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants Alignment Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants TabSet Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+staticfield javax/swing/text/StyleConstants Orientation Ljava/lang/Object; javax/swing/text/StyleConstants$ParagraphConstants
+ciInstanceKlass javax/swing/text/StyleConstants$ParagraphConstants 1 1 24 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 7 1 12 10 10 1 1 1
+ciInstanceKlass javax/swing/text/AttributeSet 1 0 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 1 1 1 1 1 12 12 9 9 9 9 1 1 1 1 1
+ciInstanceKlass javax/swing/text/MutableAttributeSet 1 0 20 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1
+instanceKlass javax/swing/text/html/StyleSheet$LargeConversionSet
+instanceKlass javax/swing/text/html/HTMLDocument$TaggedAttributeSet
+instanceKlass javax/swing/text/StyledEditorKit$1
+ciInstanceKlass javax/swing/text/SimpleAttributeSet 1 1 210 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 100 100 100 100 7 100 100 7 7 7 7 100 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1
+staticfield javax/swing/text/SimpleAttributeSet EMPTY Ljavax/swing/text/AttributeSet; javax/swing/text/SimpleAttributeSet$EmptyAttributeSet
+ciInstanceKlass javax/swing/text/SimpleAttributeSet$EmptyAttributeSet 1 1 52 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 7 7 100 100 100 1 1 1 1 12 12 12 10 10 11 1 1
+ciInstanceKlass javax/swing/text/Style 1 0 14 1 1 1 1 1 1 1 1 100 100 100 1 1
+ciInstanceKlass javax/swing/text/StyleContext$NamedStyle 1 1 228 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 7 100 100 7 7 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 1 1
+instanceKlass javax/swing/text/html/StyleSheet$SmallConversionSet
+ciInstanceKlass javax/swing/text/StyleContext$SmallAttributeSet 1 1 125 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 7 7 100 7 7 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 1 1 1
+ciInstanceKlass java/util/LinkedHashMap$LinkedKeySet 1 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 7 100 7 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 11 1 1 1
+ciInstanceKlass java/util/Collections$3 1 1 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 100 7 1 1 1 1 1 1 1 12 12 12 12 12 12 12 9 9 10 11 11 11 1
+ciInstanceKlass java/util/LinkedHashMap$LinkedKeyIterator 1 1 39 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 1 1 1 1 12 12 12 12 9 10 10 10 1 1 1
+ciInstanceKlass javax/swing/text/Element 1 0 25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 1 1 1 1 1
+instanceKlass javax/swing/text/AbstractDocument$LeafElement
+instanceKlass javax/swing/text/AbstractDocument$BranchElement
+ciInstanceKlass javax/swing/text/AbstractDocument$AbstractElement 1 1 321 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 7 7 100 7 100 7 100 100 100 7 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1
+instanceKlass javax/swing/text/DefaultStyledDocument$SectionElement
+instanceKlass javax/swing/text/html/HTMLDocument$BlockElement
+instanceKlass javax/swing/text/AbstractDocument$BidiRootElement
+ciInstanceKlass javax/swing/text/AbstractDocument$BranchElement 1 1 118 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 7 100 100 7 7 7 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 1 1 1
+instanceKlass javax/swing/text/html/HTMLDocument$RunElement
+instanceKlass javax/swing/text/AbstractDocument$BidiElement
+ciInstanceKlass javax/swing/text/AbstractDocument$LeafElement 1 1 127 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 100 7 7 7 100 100 100 7 100 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+ciInstanceKlass javax/swing/text/StyleContext$KeyEnumeration 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 100 7 1 1 1 12 12 12 12 9 9 9 10 10 1 1
+instanceKlass javax/swing/text/html/HTML$UnknownTag
+ciInstanceKlass javax/swing/text/html/HTML$Tag 1 1 438 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 1 1
+staticfield javax/swing/text/html/HTML$Tag A Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag ADDRESS Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag APPLET Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag AREA Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag B Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag BASE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag BASEFONT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag BIG Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag BLOCKQUOTE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag BODY Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag BR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag CAPTION Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag CENTER Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag CITE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag CODE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag DD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag DFN Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag DIR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag DIV Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag DL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag DT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag EM Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag FONT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag FORM Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag FRAME Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag FRAMESET Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag H1 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag H2 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag H3 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag H4 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag H5 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag H6 Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag HEAD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag HR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag HTML Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag I Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag IMG Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag INPUT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag ISINDEX Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag KBD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag LI Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag LINK Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag MAP Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag MENU Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag META Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag NOBR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag NOFRAMES Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag OBJECT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag OL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag OPTION Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag P Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag PARAM Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag PRE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SAMP Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SCRIPT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SELECT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SMALL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SPAN Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag STRIKE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag S Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag STRONG Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag STYLE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SUB Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag SUP Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TABLE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TD Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TEXTAREA Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TH Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TITLE Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag TT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag U Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag UL Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag VAR Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag IMPLIED Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag CONTENT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag COMMENT Ljavax/swing/text/html/HTML$Tag; javax/swing/text/html/HTML$Tag
+staticfield javax/swing/text/html/HTML$Tag allTags [Ljavax/swing/text/html/HTML$Tag; 74 [Ljavax/swing/text/html/HTML$Tag;
+ciInstanceKlass javax/swing/text/html/HTML 1 1 171 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 100 7 100 7 7 7 7 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+staticfield javax/swing/text/html/HTML tagHashtable Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/HTML scMapping Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/HTML attHashtable Ljava/util/Hashtable; java/util/Hashtable
+ciInstanceKlass javax/swing/text/html/HTML$Attribute 1 1 436 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 1
+staticfield javax/swing/text/html/HTML$Attribute SIZE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute COLOR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CLEAR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute BACKGROUND Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute BGCOLOR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute TEXT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute LINK Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute VLINK Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ALINK Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute WIDTH Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute HEIGHT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ALIGN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute NAME Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute HREF Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute REL Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute REV Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute TITLE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute TARGET Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute SHAPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute COORDS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ISMAP Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute NOHREF Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ALT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ID Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute SRC Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute HSPACE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute VSPACE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute USEMAP Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute LOWSRC Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CODEBASE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CODE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ARCHIVE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute VALUE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute VALUETYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute TYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CLASS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute STYLE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute LANG Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute FACE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute DIR Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute DECLARE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CLASSID Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute DATA Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CODETYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute STANDBY Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute BORDER Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute SHAPES Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute NOSHADE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute COMPACT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute START Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ACTION Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute METHOD Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ENCTYPE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CHECKED Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute MAXLENGTH Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute MULTIPLE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute SELECTED Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ROWS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute COLS Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute DUMMY Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CELLSPACING Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CELLPADDING Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute VALIGN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute HALIGN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute NOWRAP Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ROWSPAN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute COLSPAN Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute PROMPT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute HTTPEQUIV Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute CONTENT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute LANGUAGE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute VERSION Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute N Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute FRAMEBORDER Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute MARGINWIDTH Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute MARGINHEIGHT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute SCROLLING Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute NORESIZE Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute ENDTAG Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute COMMENT Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute MEDIA Ljavax/swing/text/html/HTML$Attribute; javax/swing/text/html/HTML$Attribute
+staticfield javax/swing/text/html/HTML$Attribute allAttributes [Ljavax/swing/text/html/HTML$Attribute; 81 [Ljavax/swing/text/html/HTML$Attribute;
+instanceKlass javax/swing/plaf/basic/BasicEditorPaneUI$StyleSheetUIResource
+ciInstanceKlass javax/swing/text/html/StyleSheet 1 1 672 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 100 100 7 100 100 100 100 100 7 7 7 7 7 7 7 100 100 7 7 7 7 7 7 7 7 100 7 7 7 100 7 7 100 7 7 7 100 7 7 100 100 7 7 7 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+staticfield javax/swing/text/html/StyleSheet noBorder Ljavax/swing/border/Border; javax/swing/border/EmptyBorder
+staticfield javax/swing/text/html/StyleSheet sizeMapDefault [I 7
+ciInstanceKlass javax/swing/text/html/CSS 1 1 1178 4 4 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 5 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 100 100 100 7 7 7 100 100 100 100 7 100 100 7 7 100 7 7 7 100 100 100 100 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 100 7 100 100 100 7 7 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+staticfield javax/swing/text/html/CSS attributeMap Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/CSS valueMap Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/CSS htmlAttrToCssAttrMap Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/CSS styleConstantToCssMap Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/CSS htmlValueToCssValueMap Ljava/util/Hashtable; java/util/Hashtable
+staticfield javax/swing/text/html/CSS cssValueToInternalValueMap Ljava/util/Hashtable; java/util/Hashtable
+ciInstanceKlass javax/swing/text/html/CSS$Attribute 1 1 432 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 1
+staticfield javax/swing/text/html/CSS$Attribute BACKGROUND Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_ATTACHMENT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_IMAGE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_POSITION Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BACKGROUND_REPEAT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_BOTTOM_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_LEFT_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_RIGHT_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP_COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_TOP_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute CLEAR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute COLOR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute DISPLAY Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FLOAT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FONT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FONT_FAMILY Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FONT_SIZE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FONT_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FONT_VARIANT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute FONT_WEIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute HEIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute LETTER_SPACING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute LINE_HEIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE_IMAGE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE_POSITION Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute LIST_STYLE_TYPE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_BOTTOM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_LEFT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_RIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_LEFT_LTR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_LEFT_RTL Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_RIGHT_LTR Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_RIGHT_RTL Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute MARGIN_TOP Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute PADDING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute PADDING_BOTTOM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute PADDING_LEFT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute PADDING_RIGHT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute PADDING_TOP Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute TEXT_ALIGN Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute TEXT_DECORATION Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute TEXT_INDENT Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute TEXT_TRANSFORM Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute VERTICAL_ALIGN Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute WORD_SPACING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute WHITE_SPACE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute WIDTH Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute BORDER_SPACING Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute CAPTION_SIDE Ljavax/swing/text/html/CSS$Attribute; javax/swing/text/html/CSS$Attribute
+staticfield javax/swing/text/html/CSS$Attribute allAttributes [Ljavax/swing/text/html/CSS$Attribute; 67 [Ljavax/swing/text/html/CSS$Attribute;
+staticfield javax/swing/text/html/CSS$Attribute ALL_MARGINS [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute;
+staticfield javax/swing/text/html/CSS$Attribute ALL_PADDING [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute;
+staticfield javax/swing/text/html/CSS$Attribute ALL_BORDER_WIDTHS [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute;
+staticfield javax/swing/text/html/CSS$Attribute ALL_BORDER_STYLES [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute;
+staticfield javax/swing/text/html/CSS$Attribute ALL_BORDER_COLORS [Ljavax/swing/text/html/CSS$Attribute; 4 [Ljavax/swing/text/html/CSS$Attribute;
+instanceKlass javax/swing/text/html/CSS$BackgroundPosition
+instanceKlass javax/swing/text/html/CSS$BackgroundImage
+instanceKlass javax/swing/text/html/CSS$CssValueMapper
+instanceKlass javax/swing/text/html/CSS$StringValue
+instanceKlass javax/swing/text/html/CSS$LengthValue
+instanceKlass javax/swing/text/html/CSS$ColorValue
+instanceKlass javax/swing/text/html/CSS$BorderStyle
+instanceKlass javax/swing/text/html/CSS$FontWeight
+instanceKlass javax/swing/text/html/CSS$FontFamily
+instanceKlass javax/swing/text/html/CSS$FontSize
+ciInstanceKlass javax/swing/text/html/CSS$CssValue 1 1 34 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 1 1 12 12 12 9 10 10 1 1
+ciInstanceKlass javax/swing/text/html/CSS$FontSize 1 1 186 4 4 4 4 4 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 100 100 7 100 100 100 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1 1 1
+ciInstanceKlass javax/swing/text/html/CSS$FontFamily 1 1 76 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 100 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 10 1 1
+instanceKlass javax/swing/text/html/CSS$BorderWidthValue
+ciInstanceKlass javax/swing/text/html/CSS$LengthValue 1 1 122 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 100 7 100 7 7 7 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1
+ciInstanceKlass javax/swing/text/html/CSS$StringValue 1 1 112 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 1 1
+ciInstanceKlass javax/swing/text/html/StyleSheet$SmallConversionSet 1 1 53 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 7 1 1 1 1 1 1 12 12 12 12 12 12 12 9 10 10 10 10 10 10 1 1 1
+ciInstanceKlass javax/swing/text/html/HTMLDocument$TaggedAttributeSet 1 1 17 1 1 1 1 1 1 1 1 1 7 100 100 12 10 1 1
+ciInstanceKlass javax/swing/text/html/StyleSheet$LargeConversionSet 1 1 54 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 100 7 7 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 1 1
+ciInstanceKlass javax/swing/text/StyledDocument 1 0 30 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1
+instanceKlass javax/swing/text/html/HTMLDocument
+ciInstanceKlass javax/swing/text/DefaultStyledDocument 1 1 663 8 8 8 8 8 8 8 8 8 8 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 100 100 100 100 100 100 100 100 100 100 100 7 7 100 7 7 7 7 100 100 100 7 7 7 7 7 100 7 7 7 100 7 100 100 7 7 100 100 7 7 7 7 7 7 7 7 100 100 100 100 7 100 7 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+instanceKlass javax/swing/plaf/basic/BasicHTML$BasicDocument
+ciInstanceKlass javax/swing/text/html/HTMLDocument 1 1 686 3 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 8 8 100 100 100 100 100 7 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 7 100 100 7 100 7 7 7 7 100 7 100 100 7 7 100 7 100 7 100 100 7 100 100 100 100 100 100 7 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ciInstanceKlass javax/swing/text/html/HTMLDocument$BlockElement 1 1 47 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 1 1 1 1 12 12 12 12 12 12 9 9 10 10 10 10 1 1 1
+ciInstanceKlass javax/swing/plaf/basic/BasicHTML$BasicDocument 1 1 42 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 7 7 1 1 1 1 1 12 12 12 12 12 12 10 10 10 10 10 10 1 1
+ciInstanceKlass javax/swing/text/html/HTMLDocument$RunElement 1 1 47 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 100 7 7 100 7 1 1 1 1 12 12 12 12 12 12 9 9 10 10 10 10 1 1 1
+instanceKlass org/mage/card/arcane/UI$1$1$1
+ciInstanceKlass javax/swing/text/html/ImageView 1 1 586 4 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 100 7 7 7 7 100 7 100 7 7 100 7 7 100 100 100 7 100 100 100 7 100 100 100 100 100 7 100 7 7 7 7 100 100 7 7 100 100 7 7 7 7 100 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1
+instanceKlass javax/swing/text/html/StyleSheet$ResolvedStyle
+instanceKlass javax/swing/text/html/StyleSheet$ViewAttributeSet
+ciInstanceKlass javax/swing/text/html/MuxingAttributeSet 1 1 96 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 100 7 100 100 7 100 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1
+ciInstanceKlass javax/swing/text/html/StyleSheet$ViewAttributeSet 1 1 178 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 100 7 7 7 7 7 7 100 100 7 7 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1
+ciInstanceKlass javax/swing/text/html/StyleSheet$SearchBuffer 1 1 86 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 7 100 7 7 7 100 7 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+ciInstanceKlass javax/swing/text/html/ParagraphView 1 1 231 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 100 7 7 7 7 7 7 100 7 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1 1
+instanceKlass javax/swing/text/html/BRView
+ciInstanceKlass javax/swing/text/html/InlineView 1 1 139 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 7 7 100 7 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 1
+ciInstanceKlass javax/swing/ImageIcon 1 1 333 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 7 7 7 7 7 100 100 100 100 100 100 100 100 100 100 7 7 7 100 100 7 7 7 7 100 100 7 7 7 7 100 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 9 9 9 9 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1
+staticfield javax/swing/ImageIcon component Ljava/awt/Component; javax/swing/ImageIcon$2$1
+staticfield javax/swing/ImageIcon tracker Ljava/awt/MediaTracker; java/awt/MediaTracker
+staticfield javax/swing/ImageIcon TRACKER_KEY Ljava/lang/Object; java/lang/StringBuilder
+ciInstanceKlass java/lang/StringIndexOutOfBoundsException 0 0 38 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 0 100 100 100 1 1 12 12 12 12 12 10 10 10 10 10 10 1
+ciInstanceKlass org/h2/util/SmallLRUCache 1 1 45 4 10 9 7 10 10 7 1 1 1 5 0 1 1 1 1 1 1 1 1 1 1 1 1 100 1 1 1 1 1 1 1 1 12 12 1 12 12 1 100 1 1 1 1
+instanceKlass javax/swing/text/DefaultStyledDocument$StyleChangeHandler
+instanceKlass javax/swing/text/DefaultStyledDocument$StyleContextChangeHandler
+ciInstanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler 1 1 91 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 7 7 100 7 100 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 1 12 12 12 12 12 12 12 12 12 12 12 12 9 9 10 10 10 10 10 10 10 10 10 10 11 11 11 1 1 1
+staticfield javax/swing/text/DefaultStyledDocument$AbstractChangeHandler queueMap Ljava/util/Map; java/util/HashMap
+ciInstanceKlass javax/swing/text/DefaultStyledDocument$AbstractChangeHandler$DocReference 1 1 30 1 1 1 1 1 1 1 1 1 1 1 1 7 100 100 7 1 1 1 1 1 1 12 12 9 10 1 1 1
+ciInstanceKlass javax/swing/text/DefaultStyledDocument$StyleChangeHandler 1 1 35 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 7 7 100 7 1 1 1 12 12 12 10 10 10 1 1 1
+ciInstanceKlass javax/swing/plaf/basic/BasicEditorPaneUI$StyleSheetUIResource 1 1 19 1 1 1 1 1 1 1 1 1 1 100 100 100 7 12 10 1 1
+ciInstanceKlass org/mage/card/arcane/UI$1$1$1 1 1 80 9 10 10 10 100 10 11 10 10 11 7 7 1 100 1 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 100 1 1 1 12 12 12 12 7 12 1 7 12 7 12 7 12 12 12 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+ciInstanceKlass javax/swing/text/DefaultStyledDocument$SectionElement 1 1 29 8 1 1 1 1 1 1 1 1 1 1 1 1 1 100 7 100 7 1 1 1 12 12 9 10 1 1 1
+compile javax/swing/text/html/ImageView getPreferredSpan (I)F -1 4 inline 233 0 -1 javax/swing/text/html/ImageView getPreferredSpan (I)F 1 1 javax/swing/text/html/ImageView sync ()V 2 13 javax/swing/text/html/ImageView refreshImage ()V 2 57 javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 3 1 javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 4 1 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 4 9 javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 5 1 javax/swing/text/AbstractDocument getAttributeContext ()Ljavax/swing/text/AbstractDocument$AttributeContext; 3 8 javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 4 6 javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 5 6 javax/swing/text/html/MuxingAttributeSet ()V 6 1 java/lang/Object ()V 5 15 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 5 19 javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 6 3 java/util/Stack empty ()Z 7 1 java/util/Vector size ()I 6 12 java/util/Stack pop ()Ljava/lang/Object; 7 1 java/util/Vector size ()I 7 6 java/util/Stack peek ()Ljava/lang/Object; 8 1 java/util/Vector size ()I 8 21 java/util/Vector elementAt (I)Ljava/lang/Object; 9 44 java/util/Vector elementData (I)Ljava/lang/Object; 7 14 java/util/Vector removeElementAt (I)V 5 26 javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 5 42 javax/swing/text/View getElement ()Ljavax/swing/text/Element; 5 49 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 5 60 javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 6 5 javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 7 4 javax/swing/text/SimpleAttributeSet ()V 8 1 java/lang/Object ()V 8 10 java/util/LinkedHashMap (I)V 9 2 java/util/HashMap (I)V 10 4 java/util/HashMap (IF)V 7 15 javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 8 4 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 10 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 7 37 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 7 42 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 7 47 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 7 81 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 8 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 7 102 javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 8 31 javax/swing/text/html/CSS$Attribute getDefaultValue ()Ljava/lang/String; 7 140 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 151 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 162 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 173 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 179 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 7 179 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 7 190 javax/swing/text/html/CSS translateEmbeddedAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 8 1 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 9 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 10 12 javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 8 11 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 10 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 8 32 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 8 41 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 8 120 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 201 javax/swing/text/html/CSS translateAttributes (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;Ljavax/swing/text/MutableAttributeSet;)V 8 1 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 9 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 10 12 javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 8 1 javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 9 4 java/util/LinkedHashMap keySet ()Ljava/util/Set; 10 14 java/util/LinkedHashMap$LinkedKeySet (Ljava/util/LinkedHashMap;)V 9 7 java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 10 5 java/util/Collections$3 (Ljava/util/Collection;)V 8 10 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 8 10 java/util/Collections$3 hasMoreElements ()Z 9 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 8 20 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 8 20 java/util/Collections$3 nextElement ()Ljava/lang/Object; 9 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 10 1 java/util/LinkedHashMap$LinkedHashIterator nextNode ()Ljava/util/LinkedHashMap$Entry; 10 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 8 72 javax/swing/text/html/CSS getCssAlignAttribute (Ljavax/swing/text/html/HTML$Tag;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/CSS$Attribute; 8 87 javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 8 102 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 8 177 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 8 177 javax/swing/text/SimpleAttributeSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 10 2 java/util/HashMap hash (Ljava/lang/Object;)I 10 6 java/util/HashMap getNode (ILjava/lang/Object;)Ljava/util/HashMap$Node; 10 25 java/util/LinkedHashMap afterNodeAccess (Ljava/util/HashMap$Node;)V 9 14 javax/swing/text/SimpleAttributeSet getResolveParent ()Ljavax/swing/text/AttributeSet; 10 7 java/util/LinkedHashMap get (Ljava/lang/Object;)Ljava/lang/Object; 8 186 javax/swing/text/html/CSS translateAttribute (Ljavax/swing/text/html/HTML$Attribute;Ljava/lang/String;Ljavax/swing/text/MutableAttributeSet;)V 9 2 javax/swing/text/html/CSS getCssAttribute (Ljavax/swing/text/html/HTML$Attribute;)[Ljavax/swing/text/html/CSS$Attribute; 9 47 javax/swing/text/html/CSS getCssValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 9 62 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 8 206 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 10 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 8 211 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 6 12 javax/swing/text/StyleContext addStyle (Ljava/lang/String;Ljavax/swing/text/Style;)Ljavax/swing/text/Style; 7 7 javax/swing/text/StyleContext$NamedStyle (Ljavax/swing/text/StyleContext;Ljava/lang/String;Ljavax/swing/text/Style;)V 8 6 java/lang/Object ()V 8 14 javax/swing/event/EventListenerList ()V 9 1 java/lang/Object ()V 8 27 javax/swing/text/StyleContext getEmptySet ()Ljavax/swing/text/AttributeSet; 6 18 javax/swing/text/StyleContext$NamedStyle addAttributes (Ljavax/swing/text/AttributeSet;)V 7 12 javax/swing/text/html/StyleSheet addAttributes (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 8 10 javax/swing/text/html/StyleSheet removeHTMLTags (Ljavax/swing/text/AttributeSet;Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 9 15 javax/swing/text/SimpleAttributeSet getAttributeNames ()Ljava/util/Enumeration; 10 4 java/util/LinkedHashMap keySet ()Ljava/util/Set; 10 7 java/util/Collections enumeration (Ljava/util/Collection;)Ljava/util/Enumeration; 9 15 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 10 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 9 22 java/util/Collections$3 hasMoreElements ()Z 10 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 9 22 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 9 31 java/util/Collections$3 nextElement ()Ljava/lang/Object; 10 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 11 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 9 31 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 9 51 javax/swing/text/html/HTML getTagForStyleConstantsKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/HTML$Tag; 10 4 java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 8 18 javax/swing/text/html/StyleSheet convertAttributeSet (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 9 24 java/util/Collections$3 hasMoreElements ()Z 10 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 9 24 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 9 33 java/util/Collections$3 nextElement ()Ljava/lang/Object; 10 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 11 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 9 33 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 9 51 javax/swing/text/html/StyleSheet$LargeConversionSet (Ljavax/swing/text/html/StyleSheet;)V 10 6 javax/swing/text/SimpleAttributeSet ()V 9 66 java/util/Collections$3 hasMoreElements ()Z 10 4 java/util/LinkedHashMap$LinkedHashIterator hasNext ()Z 9 66 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 9 76 java/util/Collections$3 nextElement ()Ljava/lang/Object; 10 4 java/util/LinkedHashMap$LinkedKeyIterator next ()Ljava/lang/Object; 11 4 java/util/HashMap$Node getKey ()Ljava/lang/Object; 9 76 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 9 103 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 10 4 java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 9 172 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 7 19 javax/swing/text/StyleContext$NamedStyle fireStateChanged ()V 8 4 javax/swing/event/EventListenerList getListenerList ()[Ljava/lang/Object; 8 38 javax/swing/event/ChangeEvent (Ljava/lang/Object;)V 9 2 java/util/EventObject (Ljava/lang/Object;)V 10 1 java/lang/Object ()V 5 67 javax/swing/text/StyleContext$NamedStyle getAttributeCount ()I 6 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeCount ()I 5 79 java/util/Vector addElement (Ljava/lang/Object;)V 6 17 java/util/Vector ensureCapacityHelper (I)V 5 84 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 5 84 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 5 94 javax/swing/text/AbstractDocument$AbstractElement getAttributeNames ()Ljava/util/Enumeration; 6 4 javax/swing/text/StyleContext$SmallAttributeSet getAttributeNames ()Ljava/util/Enumeration; 7 12 javax/swing/text/StyleContext$KeyEnumeration (Ljavax/swing/text/StyleContext;[Ljava/lang/Object;)V 8 6 java/lang/Object ()V 5 103 javax/swing/text/StyleContext$KeyEnumeration hasMoreElements ()Z 5 113 javax/swing/text/StyleContext$KeyEnumeration nextElement ()Ljava/lang/Object; 5 220 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 6 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 7 11 javax/swing/text/html/StyleSheet access$000 (Ljavax/swing/text/html/StyleSheet;)Ljavax/swing/text/html/CSS; 7 18 javax/swing/text/html/CSS styleConstantsKeyToCSSKey (Ljavax/swing/text/StyleConstants;)Ljavax/swing/text/html/CSS$Attribute; 8 4 java/util/Hashtable get (Ljava/lang/Object;)Ljava/lang/Object; 5 250 java/util/Vector addElement (Ljava/lang/Object;)V 6 17 java/util/Vector ensureCapacityHelper (I)V 5 255 java/util/Vector size ()I 5 267 java/util/Vector copyInto ([Ljava/lang/Object;)V 5 273 javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 5 278 javax/swing/text/html/StyleSheet$SearchBuffer releaseSearchBuffer (Ljavax/swing/text/html/StyleSheet$SearchBuffer;)V 6 1 javax/swing/text/html/StyleSheet$SearchBuffer empty ()V 7 12 java/lang/StringBuffer setLength (I)V 8 7 java/lang/AbstractStringBuilder setLength (I)V 9 15 java/lang/AbstractStringBuilder ensureCapacityInternal (I)V 7 26 java/util/Vector removeAllElements ()V 7 40 java/util/Hashtable clear ()V 6 8 java/util/Stack push (Ljava/lang/Object;)Ljava/lang/Object; 7 2 java/util/Vector addElement (Ljava/lang/Object;)V 8 17 java/util/Vector ensureCapacityHelper (I)V 3 20 javax/swing/text/html/ImageView isLink ()Z 3 86 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 3 93 javax/swing/text/html/ImageView getAttributes ()Ljavax/swing/text/AttributeSet; 3 105 javax/swing/text/View getElement ()Ljavax/swing/text/Element; 1 20 javax/swing/text/html/ImageView getPreferredSpanFromAltView (I)F 2 1 javax/swing/text/html/ImageView getImage ()Ljava/awt/Image; 3 1 javax/swing/text/html/ImageView sync ()V 4 13 javax/swing/text/html/ImageView refreshImage ()V 4 57 javax/swing/text/html/ImageView setPropertiesFromAttributes ()V 5 1 javax/swing/text/html/ImageView getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 6 1 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 6 9 javax/swing/text/html/HTMLDocument getStyleSheet ()Ljavax/swing/text/html/StyleSheet; 7 1 javax/swing/text/AbstractDocument getAttributeContext ()Ljavax/swing/text/AbstractDocument$AttributeContext; 5 8 javax/swing/text/html/StyleSheet getViewAttributes (Ljavax/swing/text/View;)Ljavax/swing/text/AttributeSet; 6 6 javax/swing/text/html/StyleSheet$ViewAttributeSet (Ljavax/swing/text/html/StyleSheet;Ljavax/swing/text/View;)V 7 6 javax/swing/text/html/MuxingAttributeSet ()V 8 1 java/lang/Object ()V 7 15 javax/swing/text/View getDocument ()Ljavax/swing/text/Document; 7 19 javax/swing/text/html/StyleSheet$SearchBuffer obtainSearchBuffer ()Ljavax/swing/text/html/StyleSheet$SearchBuffer; 8 3 java/util/Stack empty ()Z 9 1 java/util/Vector size ()I 8 12 java/util/Stack pop ()Ljava/lang/Object; 9 1 java/util/Vector size ()I 9 6 java/util/Stack peek ()Ljava/lang/Object; 10 1 java/util/Vector size ()I 10 21 java/util/Vector elementAt (I)Ljava/lang/Object; 9 14 java/util/Vector removeElementAt (I)V 7 26 javax/swing/text/html/StyleSheet$SearchBuffer getVector ()Ljava/util/Vector; 7 42 javax/swing/text/View getElement ()Ljavax/swing/text/Element; 7 49 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 7 60 javax/swing/text/html/StyleSheet translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 8 5 javax/swing/text/html/CSS translateHTMLToCSS (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/AttributeSet; 9 4 javax/swing/text/SimpleAttributeSet ()V 10 1 java/lang/Object ()V 10 10 java/util/LinkedHashMap (I)V 9 15 javax/swing/text/html/CSS getHTMLTag (Ljavax/swing/text/AttributeSet;)Ljavax/swing/text/html/HTML$Tag; 10 4 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 37 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 9 42 javax/swing/text/AbstractDocument$AbstractElement getParentElement ()Ljavax/swing/text/Element; 9 47 javax/swing/text/AbstractDocument$AbstractElement getAttributes ()Ljavax/swing/text/AttributeSet; 9 81 javax/swing/text/AbstractDocument$AbstractElement getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 10 5 javax/swing/text/html/StyleSheet$SmallConversionSet getAttribute (Ljava/lang/Object;)Ljava/lang/Object; 9 102 javax/swing/text/html/CSS getInternalCSSValue (Ljavax/swing/text/html/CSS$Attribute;Ljava/lang/String;)Ljava/lang/Object; 10 31 javax/swing/text/html/CSS$Attribute getDefaultValue ()Ljava/lang/String; 9 140 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 9 151 javax/swing/text/SimpleAttributeSet addAttribute (Ljava/lang/Object;Ljava/lang/Object;)V 9 179 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 9 179 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 7 84 javax/swing/text/AbstractDocument$BranchElement isLeaf ()Z 7 84 javax/swing/text/AbstractDocument$LeafElement isLeaf ()Z 7 255 java/util/Vector size ()I 7 273 javax/swing/text/html/MuxingAttributeSet setAttributes ([Ljavax/swing/text/AttributeSet;)V 5 105 javax/swing/text/View getElement ()Ljavax/swing/text/Element;
diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java
index e5c0908323d..3d6d685e4cb 100644
--- a/Mage.Client/src/main/java/mage/client/MageFrame.java
+++ b/Mage.Client/src/main/java/mage/client/MageFrame.java
@@ -27,6 +27,21 @@
*/
package mage.client;
+import java.awt.*;
+import java.awt.event.*;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.prefs.Preferences;
+import javax.imageio.ImageIO;
+import javax.swing.*;
+import javax.swing.event.PopupMenuEvent;
+import javax.swing.event.PopupMenuListener;
import mage.cards.decks.Deck;
import mage.cards.repository.CardCriteria;
import mage.cards.repository.CardInfo;
@@ -77,25 +92,6 @@ import org.mage.plugins.card.images.DownloadPictures;
import org.mage.plugins.card.info.CardInfoPaneImpl;
import org.mage.plugins.card.utils.impl.ImageManagerImpl;
-import javax.imageio.ImageIO;
-import javax.swing.*;
-import javax.swing.event.PopupMenuEvent;
-import javax.swing.event.PopupMenuListener;
-import java.awt.*;
-import java.awt.event.*;
-import java.awt.image.BufferedImage;
-import java.beans.PropertyVetoException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.prefs.Preferences;
-
/**
* @author BetaSteward_at_googlemail.com
*/
@@ -253,13 +249,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
updateMemUsageTask = new UpdateMemUsageTask(jMemUsageLabel);
- try {
- tablesPane = new TablesPane();
- desktopPane.add(tablesPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
- tablesPane.setMaximum(true);
- } catch (PropertyVetoException ex) {
- LOGGER.fatal(null, ex);
- }
+ tablesPane = new TablesPane();
+ desktopPane.add(tablesPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
addTooltipContainer();
setBackground();
@@ -279,6 +270,8 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
backgroundPane.setSize(width, height);
}
+ updateCurrentFrameSize();
+
ArrowBuilder.getBuilder().setSize(width, height);
if (title != null) {
@@ -478,7 +471,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
private void createAndShowSwitchPanelsMenu(final JComponent component, final AbstractButton windowButton) {
JPopupMenu menu = new JPopupMenu();
- JInternalFrame[] windows = desktopPane.getAllFramesInLayer(javax.swing.JLayeredPane.DEFAULT_LAYER);
+ Component[] windows = desktopPane.getComponentsInLayer(javax.swing.JLayeredPane.DEFAULT_LAYER);
MagePaneMenuItem menuItem;
for (int i = 0; i < windows.length; i++) {
@@ -492,7 +485,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
MagePane frame = ((MagePaneMenuItem) ae.getSource()).getFrame();
setActive(frame);
});
- menuItem.setIcon(window.getFrameIcon());
+ //menuItem.setIcon(window.getFrameIcon());
menu.add(menuItem);
}
}
@@ -543,23 +536,28 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
// showUserRequestDialog(message);
// }
public static void setActive(MagePane frame) {
+ // Nothing to do
+ if (activeFrame == frame) {
+ return;
+ }
+
+ // Deactivate current frame if there is one
+ if (activeFrame != null) {
+ activeFrame.deactivated();
+ }
+
+ // If null, no new frame to activate, return early
if (frame == null) {
activeFrame = null;
return;
}
LOGGER.debug("Setting " + frame.getTitle() + " active");
- if (activeFrame != null) {
- activeFrame.deactivated();
- }
activeFrame = frame;
- activeFrame.setVisible(true);
- activeFrame.toFront();
- try {
- activeFrame.setSelected(true);
- } catch (PropertyVetoException ex) {
- LOGGER.error("Error setting " + frame.getTitle() + " active");
- }
+ desktopPane.moveToFront(frame);
+ activeFrame.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight());
+ activeFrame.revalidate();
activeFrame.activated();
+ activeFrame.setVisible(true);
ArrowBuilder.getBuilder().hideAllPanels();
if (frame instanceof GamePane) {
ArrowBuilder.getBuilder().showPanel(((GamePane) frame).getGameId());
@@ -569,23 +567,36 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
}
+ private void updateCurrentFrameSize() {
+ if (activeFrame != null) {
+ activeFrame.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight());
+ }
+ }
+
+ @Override
+ public void doLayout() {
+ super.doLayout();
+
+ updateCurrentFrameSize();
+ }
+
public static void deactivate(MagePane frame) {
frame.setVisible(false);
setActive(getTopMost(frame));
if (activeFrame != frame) {
frame.deactivated();
}
-
}
private static MagePane getTopMost(MagePane exclude) {
MagePane topmost = null;
int best = Integer.MAX_VALUE;
- for (JInternalFrame frame : desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER)) {
+ for (Component frame : desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER)) {
if (frame.isVisible()) {
int z = desktopPane.getComponentZOrder(frame);
if (z < best) {
- if (frame instanceof MagePane) {
+ // Exclude the tables pane if not connected, we never want to show it when not connected
+ if (frame instanceof MagePane && (SessionHandler.isConnected() || !(frame instanceof TablesPane))) {
best = z;
if (!frame.equals(exclude)) {
topmost = (MagePane) frame;
@@ -604,64 +615,47 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
* @param playerId
*/
public void showGame(UUID gameId, UUID playerId) {
- try {
- GamePane gamePane = new GamePane();
- desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER);
- gamePane.setMaximum(true);
- gamePane.setVisible(true);
- gamePane.showGame(gameId, playerId);
- setActive(gamePane);
- } catch (PropertyVetoException ex) {
- }
+ GamePane gamePane = new GamePane();
+ desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER);
+ gamePane.setVisible(true);
+ gamePane.showGame(gameId, playerId);
+ setActive(gamePane);
}
public void watchGame(UUID gameId) {
- try {
- for (Component component : desktopPane.getComponents()) {
- if (component instanceof GamePane
- && ((GamePane) component).getGameId().equals(gameId)) {
- setActive((GamePane) component);
- return;
- }
+ for (Component component : desktopPane.getComponents()) {
+ if (component instanceof GamePane
+ && ((GamePane) component).getGameId().equals(gameId)) {
+ setActive((GamePane) component);
+ return;
}
- GamePane gamePane = new GamePane();
- desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER);
- gamePane.setMaximum(true);
- gamePane.setVisible(true);
- gamePane.watchGame(gameId);
- setActive(gamePane);
- } catch (PropertyVetoException ex) {
- LOGGER.debug("Problem starting watching game " + gameId, ex);
}
+ GamePane gamePane = new GamePane();
+ desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER);
+ gamePane.setVisible(true);
+ gamePane.watchGame(gameId);
+ setActive(gamePane);
}
public void replayGame(UUID gameId) {
- try {
- GamePane gamePane = new GamePane();
- desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER);
- gamePane.setMaximum(true);
- gamePane.setVisible(true);
- gamePane.replayGame(gameId);
- setActive(gamePane);
- } catch (PropertyVetoException ex) {
- }
+ GamePane gamePane = new GamePane();
+ desktopPane.add(gamePane, JLayeredPane.DEFAULT_LAYER);
+ gamePane.setVisible(true);
+ gamePane.replayGame(gameId);
+ setActive(gamePane);
}
public void showDraft(UUID draftId) {
- try {
- DraftPane draftPane = new DraftPane();
- desktopPane.add(draftPane, JLayeredPane.DEFAULT_LAYER);
- draftPane.setMaximum(true);
- draftPane.setVisible(true);
- draftPane.showDraft(draftId);
- setActive(draftPane);
- } catch (PropertyVetoException ex) {
- }
+ DraftPane draftPane = new DraftPane();
+ desktopPane.add(draftPane, JLayeredPane.DEFAULT_LAYER);
+ draftPane.setVisible(true);
+ draftPane.showDraft(draftId);
+ setActive(draftPane);
}
public void endDraft(UUID draftId) {
// inform all open draft panes about
- for (JInternalFrame window : desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER)) {
+ for (Component window : desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER)) {
if (window instanceof DraftPane) {
DraftPane draftPane = (DraftPane) window;
draftPane.removeDraft();
@@ -670,22 +664,18 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
public void showTournament(UUID tournamentId) {
- try {
- for (Component component : desktopPane.getComponents()) {
- if (component instanceof TournamentPane
- && ((TournamentPane) component).getTournamentId().equals(tournamentId)) {
- setActive((TournamentPane) component);
- return;
- }
+ for (Component component : desktopPane.getComponents()) {
+ if (component instanceof TournamentPane
+ && ((TournamentPane) component).getTournamentId().equals(tournamentId)) {
+ setActive((TournamentPane) component);
+ return;
}
- TournamentPane tournamentPane = new TournamentPane();
- desktopPane.add(tournamentPane, JLayeredPane.DEFAULT_LAYER);
- tournamentPane.setMaximum(true);
- tournamentPane.setVisible(true);
- tournamentPane.showTournament(tournamentId);
- setActive(tournamentPane);
- } catch (PropertyVetoException ex) {
}
+ TournamentPane tournamentPane = new TournamentPane();
+ desktopPane.add(tournamentPane, JLayeredPane.DEFAULT_LAYER);
+ tournamentPane.setVisible(true);
+ tournamentPane.showTournament(tournamentId);
+ setActive(tournamentPane);
}
public void showGameEndDialog(GameEndView gameEndView) {
@@ -748,7 +738,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
LOGGER.debug("connecting (auto): " + currentConnection.getProxyType().toString()
+ ' ' + currentConnection.getProxyHost() + ' ' + currentConnection.getProxyPort() + ' ' + currentConnection.getProxyUsername());
if (MageFrame.connect(currentConnection)) {
- showGames(false);
+ prepareAndShowTablesPane();
return true;
} else {
showMessage("Unable to connect to server");
@@ -1014,23 +1004,20 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
}
- public void showGames(boolean setActive) {
+ public void prepareAndShowTablesPane() {
+ // Update the tables pane with the new session
+ this.tablesPane.showTables();
+
+ // Show the tables pane if there wasn't already an active pane
MagePane topPanebefore = getTopMost(tablesPane);
- if (!tablesPane.isVisible()) {
- this.tablesPane.setVisible(true);
- this.tablesPane.showTables();
- }
- if (setActive) {
+ if (topPanebefore == null) {
setActive(tablesPane);
- } else // if other panel was already shown, mamke sure it's topmost again
- if (topPanebefore != null) {
- setActive(topPanebefore);
- }
+ }
}
public void hideGames() {
- JInternalFrame[] windows = desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER);
- for (JInternalFrame window : windows) {
+ Component[] windows = desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER);
+ for (Component window : windows) {
if (window instanceof GamePane) {
GamePane gamePane = (GamePane) window;
gamePane.removeGame();
@@ -1066,25 +1053,20 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
name = "Deck Editor";
}
// use already open editor
- JInternalFrame[] windows = desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER);
- for (JInternalFrame window : windows) {
- if (window instanceof DeckEditorPane && window.getTitle().equals(name)) {
+ Component[] windows = desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER);
+ for (Component window : windows) {
+ if (window instanceof DeckEditorPane && ((MagePane) window).getTitle().equals(name)) {
setActive((MagePane) window);
return;
}
}
}
- try {
- DeckEditorPane deckEditorPane = new DeckEditorPane();
- desktopPane.add(deckEditorPane, JLayeredPane.DEFAULT_LAYER);
- deckEditorPane.setMaximum(true);
- deckEditorPane.setVisible(true);
- deckEditorPane.show(mode, deck, name, tableId, time);
- setActive(deckEditorPane);
- } catch (PropertyVetoException ex) {
- LOGGER.fatal(null, ex);
- }
+ DeckEditorPane deckEditorPane = new DeckEditorPane();
+ desktopPane.add(deckEditorPane, JLayeredPane.DEFAULT_LAYER);
+ deckEditorPane.setVisible(false);
+ deckEditorPane.show(mode, deck, name, tableId, time);
+ setActive(deckEditorPane);
}
public void showUserRequestDialog(final UserRequestMessage userRequestMessage) {
@@ -1109,22 +1091,17 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
}
public void showCollectionViewer() {
- JInternalFrame[] windows = desktopPane.getAllFramesInLayer(JLayeredPane.DEFAULT_LAYER);
- for (JInternalFrame window : windows) {
+ Component[] windows = desktopPane.getComponentsInLayer(JLayeredPane.DEFAULT_LAYER);
+ for (Component window : windows) {
if (window instanceof CollectionViewerPane) {
setActive((MagePane) window);
return;
}
}
- try {
- CollectionViewerPane collectionViewerPane = new CollectionViewerPane();
- desktopPane.add(collectionViewerPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
- collectionViewerPane.setMaximum(true);
- collectionViewerPane.setVisible(true);
- setActive(collectionViewerPane);
- } catch (PropertyVetoException ex) {
- LOGGER.fatal(null, ex);
- }
+ CollectionViewerPane collectionViewerPane = new CollectionViewerPane();
+ desktopPane.add(collectionViewerPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
+ collectionViewerPane.setVisible(true);
+ setActive(collectionViewerPane);
}
static void renderSplashFrame(Graphics2D g) {
diff --git a/Mage.Client/src/main/java/mage/client/MagePane.java b/Mage.Client/src/main/java/mage/client/MagePane.java
index b4a4d474d6e..6ba8b902041 100644
--- a/Mage.Client/src/main/java/mage/client/MagePane.java
+++ b/Mage.Client/src/main/java/mage/client/MagePane.java
@@ -36,37 +36,33 @@ package mage.client;
import java.awt.AWTEvent;
import java.awt.KeyboardFocusManager;
import java.beans.PropertyVetoException;
+import javax.swing.*;
import javax.swing.plaf.basic.BasicInternalFrameUI;
/**
*
* @author BetaSteward_at_googlemail.com
*/
-public abstract class MagePane extends javax.swing.JInternalFrame {
+public abstract class MagePane extends javax.swing.JLayeredPane {
+ private String title = "no title set";
/**
* Creates new form MagePane
*/
public MagePane() {
- this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
initComponents();
- hideTitle();
- }
-
- private void hideTitle() {
- if (ui instanceof BasicInternalFrameUI) {
- ((BasicInternalFrameUI) ui).setNorthPane(null);
- }
}
public void changeGUISize() {
}
- @Override
- public void updateUI() {
- super.updateUI();
- hideTitle();
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getTitle() {
+ return title;
}
public void hideFrame() {
@@ -75,11 +71,6 @@ public abstract class MagePane extends javax.swing.JInternalFrame {
public void removeFrame() {
KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
- try {
- this.setClosed(true);
- } catch (PropertyVetoException ex) {
-
- }
MageFrame.deactivate(this);
MageFrame.getDesktop().remove(this);
}
@@ -106,18 +97,6 @@ public abstract class MagePane extends javax.swing.JInternalFrame {
setBorder(null);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 765, Short.MAX_VALUE)
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGap(0, 476, Short.MAX_VALUE)
- );
-
- pack();
}// //GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
diff --git a/Mage.Client/src/main/java/mage/client/SessionHandler.java b/Mage.Client/src/main/java/mage/client/SessionHandler.java
index a690513ec5d..97a183c3cad 100644
--- a/Mage.Client/src/main/java/mage/client/SessionHandler.java
+++ b/Mage.Client/src/main/java/mage/client/SessionHandler.java
@@ -1,13 +1,12 @@
package mage.client;
-import java.util.*;
-
import mage.cards.decks.DeckCardLists;
import mage.client.chat.LocalCommands;
import mage.constants.ManaType;
import mage.constants.PlayerAction;
import mage.game.match.MatchOptions;
import mage.game.tournament.TournamentOptions;
+import mage.players.PlayerType;
import mage.players.net.UserData;
import mage.remote.Connection;
import mage.remote.MageRemoteException;
@@ -15,6 +14,8 @@ import mage.remote.Session;
import mage.remote.SessionImpl;
import mage.view.*;
+import java.util.*;
+
/**
* Created by IGOUDT on 15-9-2016.
*/
@@ -91,11 +92,11 @@ public final class SessionHandler {
session.sendPlayerBoolean(gameId, b);
}
- public static String[] getPlayerTypes() {
+ public static PlayerType[] getPlayerTypes() {
return session.getPlayerTypes();
}
- public static boolean joinTournamentTable(UUID roomId, UUID tableId, String text, String selectedItem, Integer integer, DeckCardLists deckCardLists, String s) {
+ public static boolean joinTournamentTable(UUID roomId, UUID tableId, String text, PlayerType selectedItem, Integer integer, DeckCardLists deckCardLists, String s) {
return session.joinTournamentTable(roomId, tableId, text, selectedItem, integer, deckCardLists, s);
}
@@ -233,7 +234,7 @@ public final class SessionHandler {
return session.createTable(roomId, options);
}
- public static boolean joinTable(UUID roomId, UUID tableId, String playerName, String human, int skill, DeckCardLists deckCardLists, String text) {
+ public static boolean joinTable(UUID roomId, UUID tableId, String playerName, PlayerType human, int skill, DeckCardLists deckCardLists, String text) {
return session.joinTable(roomId, tableId, playerName, human, skill, deckCardLists, text);
}
diff --git a/Mage.Client/src/main/java/mage/client/cards/Card.java b/Mage.Client/src/main/java/mage/client/cards/Card.java
index b3ddbadeec2..18693345577 100644
--- a/Mage.Client/src/main/java/mage/client/cards/Card.java
+++ b/Mage.Client/src/main/java/mage/client/cards/Card.java
@@ -33,52 +33,12 @@
*/
package mage.client.cards;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.RenderingHints;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JScrollPane;
-import javax.swing.Popup;
-import javax.swing.PopupFactory;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Style;
-import javax.swing.text.StyleConstants;
-import javax.swing.text.StyleContext;
-import javax.swing.text.StyledDocument;
import mage.cards.CardDimensions;
import mage.cards.MagePermanent;
import mage.cards.Sets;
import mage.cards.TextPopup;
import mage.cards.action.ActionCallback;
import mage.client.MageFrame;
-import static mage.client.constants.Constants.CONTENT_MAX_XOFFSET;
-import static mage.client.constants.Constants.FRAME_MAX_HEIGHT;
-import static mage.client.constants.Constants.FRAME_MAX_WIDTH;
-import static mage.client.constants.Constants.NAME_FONT_MAX_SIZE;
-import static mage.client.constants.Constants.NAME_MAX_YOFFSET;
-import static mage.client.constants.Constants.POWBOX_TEXT_MAX_LEFT;
-import static mage.client.constants.Constants.POWBOX_TEXT_MAX_TOP;
-import static mage.client.constants.Constants.SYMBOL_MAX_XOFFSET;
-import static mage.client.constants.Constants.SYMBOL_MAX_YOFFSET;
-import static mage.client.constants.Constants.TYPE_MAX_YOFFSET;
import mage.client.game.PlayAreaPanel;
import mage.client.util.Config;
import mage.client.util.DefaultActionCallback;
@@ -86,13 +46,21 @@ import mage.client.util.ImageHelper;
import mage.client.util.gui.ArrowBuilder;
import mage.constants.CardType;
import mage.constants.EnlargeMode;
-import mage.view.AbilityView;
-import mage.view.CardView;
-import mage.view.CounterView;
-import mage.view.PermanentView;
-import mage.view.StackAbilityView;
+import mage.constants.SuperType;
+import mage.view.*;
import org.apache.log4j.Logger;
+import javax.swing.*;
+import javax.swing.text.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.awt.image.BufferedImage;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import static mage.client.constants.Constants.*;
+
/**
*
* @author BetaSteward_at_googlemail.com
@@ -191,9 +159,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
gImage.setFont(new Font("Arial", Font.PLAIN, NAME_FONT_MAX_SIZE));
gImage.drawString(card.getName()+"TEST", CONTENT_MAX_XOFFSET, NAME_MAX_YOFFSET);
- if (card.getCardTypes().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
gImage.drawString(card.getPower() + '/' + card.getToughness(), POWBOX_TEXT_MAX_LEFT, POWBOX_TEXT_MAX_TOP);
- } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) {
+ } else if (card.isPlanesWalker()) {
gImage.drawString(card.getLoyalty(), POWBOX_TEXT_MAX_LEFT, POWBOX_TEXT_MAX_TOP);
}
@@ -205,9 +173,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
gSmall.setFont(new Font("Arial", Font.PLAIN, Config.dimensions.nameFontSize));
gSmall.drawString(card.getName()+"TEST2", Config.dimensions.contentXOffset, Config.dimensions.nameYOffset);
- if (card.getCardTypes().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
gSmall.drawString(card.getPower() + "/-/" + card.getToughness(), Config.dimensions.powBoxTextLeft, Config.dimensions.powBoxTextTop);
- } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) {
+ } else if (card.isPlanesWalker()) {
gSmall.drawString(card.getLoyalty(), Config.dimensions.powBoxTextLeft, Config.dimensions.powBoxTextTop);
}
@@ -239,9 +207,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
if (card.getColor().hasColor()) {
sb.append('\n').append(card.getColor().toString());
}
- if (card.getCardTypes().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
sb.append('\n').append(card.getPower()).append('/').append(card.getToughness());
- } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) {
+ } else if (card.isPlanesWalker()) {
sb.append('\n').append(card.getLoyalty());
}
for (String rule : getRules()) {
@@ -262,9 +230,9 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
return "effect";
}
StringBuilder sb = new StringBuilder();
- if (card.getCardTypes().contains(CardType.LAND)) {
+ if (card.isLand()) {
sb.append("land").append(card.getSuperTypes()).append(card.getSubTypes());
- } else if (card.getCardTypes() != null && (card.getCardTypes().contains(CardType.CREATURE) || card.getCardTypes().contains(CardType.PLANESWALKER))) {
+ } else if (card.getCardTypes() != null && (card.isCreature() || card.isPlanesWalker())) {
sb.append("creature");
}
sb.append(card.getColor()).append(card.getRarity()).append(card.getExpansionSetCode());
@@ -300,7 +268,7 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
protected String getType(CardView card) {
StringBuilder sbType = new StringBuilder();
- for (String superType : card.getSuperTypes()) {
+ for (SuperType superType : card.getSuperTypes()) {
sbType.append(superType).append(' ');
}
diff --git a/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java
index ed9ae1f67fb..e79ea3944c4 100644
--- a/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java
+++ b/Mage.Client/src/main/java/mage/client/cards/CardDraggerGlassPane.java
@@ -1,6 +1,7 @@
package mage.client.cards;
import mage.cards.MageCard;
+import mage.client.MagePane;
import mage.client.plugins.impl.Plugins;
import mage.view.CardView;
@@ -24,9 +25,12 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener
private DragCardTarget currentDragTarget;
private boolean isDragging;
+ // This should not be strictly needed, but for some reason I can't figure out getDeepestComponentAt and
+ // getComponentAt do not seem to work correctly for our setup if called on the root MageFrame.
+ private MagePane currentEventRootMagePane;
+
public CardDraggerGlassPane(DragCardSource source) {
this.source = source;
-
}
public void beginDrag(Component c, MouseEvent e) {
@@ -46,6 +50,17 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener
glassPane.setOpaque(false);
glassPane.setVisible(true);
+ // Get root mage pane to handle drag targeting in
+ Component rootMagePane = c;
+ while (rootMagePane != null && !(rootMagePane instanceof MagePane)) {
+ rootMagePane = rootMagePane.getParent();
+ }
+ if (rootMagePane == null) {
+ throw new RuntimeException("CardDraggerGlassPane::beginDrag not in a MagePane?");
+ } else {
+ currentEventRootMagePane = (MagePane)rootMagePane;
+ }
+
// Hook up events
c.addMouseListener(this);
c.addMouseMotionListener(this);
@@ -72,19 +87,19 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener
// Update the target
currentDragTarget = null;
- updateCurrentTarget(SwingUtilities.convertMouseEvent(glassPane, e, currentRoot), false);
+ updateCurrentTarget(SwingUtilities.convertMouseEvent(glassPane, e, currentEventRootMagePane), false);
}
// e is relative to currentRoot
private void updateCurrentTarget(MouseEvent e, boolean isEnding) {
- Component mouseOver = SwingUtilities.getDeepestComponentAt(currentRoot.getContentPane(), e.getX(), e.getY());
+ Component mouseOver = SwingUtilities.getDeepestComponentAt(currentEventRootMagePane, e.getX(), e.getY());
while (mouseOver != null) {
if (mouseOver instanceof DragCardTarget) {
DragCardTarget target = (DragCardTarget)mouseOver;
- MouseEvent targetEvent = SwingUtilities.convertMouseEvent(currentRoot, e, mouseOver);
+ MouseEvent targetEvent = SwingUtilities.convertMouseEvent(currentEventRootMagePane, e, mouseOver);
if (target != currentDragTarget) {
if (currentDragTarget != null) {
- MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentRoot, e, (Component) currentDragTarget);
+ MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentEventRootMagePane, e, (Component) currentDragTarget);
currentDragTarget.dragCardExit(oldTargetEvent);
}
currentDragTarget = target;
@@ -101,7 +116,7 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener
mouseOver = mouseOver.getParent();
}
if (currentDragTarget != null) {
- MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentRoot, e, (Component)currentDragTarget);
+ MouseEvent oldTargetEvent = SwingUtilities.convertMouseEvent(currentEventRootMagePane, e, (Component)currentDragTarget);
currentDragTarget.dragCardExit(oldTargetEvent);
}
currentDragTarget = null;
@@ -124,7 +139,7 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener
dragComponent.removeMouseMotionListener(this);
// Convert the event into root coords
- e = SwingUtilities.convertMouseEvent(dragComponent, e, currentRoot);
+ e = SwingUtilities.convertMouseEvent(dragComponent, e, currentEventRootMagePane);
// Remove the drag card
glassPane.remove(dragView);
@@ -144,7 +159,7 @@ public class CardDraggerGlassPane implements MouseListener, MouseMotionListener
dragView.setLocation(glassE.getX(), glassE.getY());
dragView.repaint();
// Convert the event into root coords and update target
- e = SwingUtilities.convertMouseEvent(dragComponent, e, currentRoot);
+ e = SwingUtilities.convertMouseEvent(dragComponent, e, currentEventRootMagePane);
updateCurrentTarget(e, false);
}
diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java
index 45d106c187e..637271efa53 100644
--- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java
+++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java
@@ -33,26 +33,6 @@
*/
package mage.client.cards;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Rectangle;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.beans.Beans;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JTable;
-import javax.swing.table.DefaultTableCellRenderer;
-import javax.swing.table.TableColumn;
-import javax.swing.table.TableColumnModel;
import mage.cards.MageCard;
import mage.client.constants.Constants.DeckEditorMode;
import mage.client.constants.Constants.SortBy;
@@ -61,22 +41,26 @@ import mage.client.deckeditor.table.TableModel;
import mage.client.deckeditor.table.UpdateCountsCallback;
import mage.client.dialog.PreferencesDialog;
import mage.client.plugins.impl.Plugins;
-import mage.client.util.CardViewCardTypeComparator;
-import mage.client.util.CardViewColorComparator;
-import mage.client.util.CardViewColorIdentityComparator;
-import mage.client.util.CardViewCostComparator;
-import mage.client.util.CardViewNameComparator;
-import mage.client.util.CardViewRarityComparator;
+import mage.client.util.*;
import mage.client.util.Event;
-import mage.client.util.GUISizeHelper;
-import mage.client.util.Listener;
import mage.client.util.gui.TableSpinnerEditor;
-import mage.constants.CardType;
import mage.view.CardView;
import mage.view.CardsView;
import mage.view.SimpleCardView;
import org.mage.card.arcane.CardPanel;
+import javax.swing.*;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
+import java.awt.*;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.beans.Beans;
+import java.util.*;
+import java.util.List;
+
/**
*
* @author BetaSteward_at_googlemail.com
@@ -398,22 +382,22 @@ public class CardsList extends javax.swing.JPanel implements MouseListener, ICar
int artifactCount = 0;
for (CardView card : cards.values()) {
- if (card.getCardTypes().contains(CardType.LAND)) {
+ if (card.isLand()) {
landCount++;
}
- if (card.getCardTypes().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
creatureCount++;
}
- if (card.getCardTypes().contains(CardType.SORCERY)) {
+ if (card.isSorcery()) {
sorceryCount++;
}
- if (card.getCardTypes().contains(CardType.INSTANT)) {
+ if (card.isInstant()) {
instantCount++;
}
- if (card.getCardTypes().contains(CardType.ENCHANTMENT)) {
+ if (card.isEnchantment()) {
enchantmentCount++;
}
- if (card.getCardTypes().contains(CardType.ARTIFACT)) {
+ if (card.isArtifact()) {
artifactCount++;
}
}
diff --git a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java
index d1bb0977e24..f1c4c49961a 100644
--- a/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java
+++ b/Mage.Client/src/main/java/mage/client/cards/DragCardGrid.java
@@ -1,53 +1,6 @@
package mage.client.cards;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-import javax.swing.AbstractButton;
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.ButtonGroup;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JLayeredPane;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JScrollPane;
import mage.cards.Card;
-import javax.swing.JSlider;
-import javax.swing.JTextField;
-import javax.swing.JToggleButton;
-import javax.swing.ScrollPaneConstants;
-import javax.swing.SwingConstants;
-import javax.swing.SwingUtilities;
import mage.cards.MageCard;
import mage.cards.decks.DeckCardInfo;
import mage.cards.decks.DeckCardLayout;
@@ -58,22 +11,28 @@ import mage.client.MageFrame;
import mage.client.constants.Constants;
import mage.client.dialog.PreferencesDialog;
import mage.client.plugins.impl.Plugins;
-import mage.client.util.CardViewCardTypeComparator;
-import mage.client.util.CardViewColorComparator;
-import mage.client.util.CardViewColorIdentityComparator;
-import mage.client.util.CardViewCostComparator;
-import mage.client.util.CardViewNameComparator;
-import mage.client.util.CardViewRarityComparator;
+import mage.client.util.*;
import mage.client.util.Event;
-import mage.client.util.GUISizeHelper;
-import mage.client.util.Listener;
import mage.constants.CardType;
+import mage.constants.SuperType;
import mage.util.RandomUtil;
import mage.view.CardView;
import mage.view.CardsView;
import org.apache.log4j.Logger;
import org.mage.card.arcane.CardRenderer;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.*;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
/**
* Created by StravantUser on 2016-09-20.
*/
@@ -511,50 +470,50 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
private final CardTypeCounter creatureCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.CREATURE);
+ return card.isCreature();
}
};
private final CardTypeCounter landCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.LAND);
+ return card.isLand();
}
};
private final CardTypeCounter artifactCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.ARTIFACT);
+ return card.isArtifact();
}
};
private final CardTypeCounter enchantmentCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.ENCHANTMENT);
+ return card.isEnchantment();
}
};
private final CardTypeCounter instantCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.INSTANT);
+ return card.isInstant();
}
};
private final CardTypeCounter sorceryCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.SORCERY);
+ return card.isSorcery();
}
};
private final CardTypeCounter planeswalkerCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.PLANESWALKER);
+ return card.isPlanesWalker();
}
};
private final CardTypeCounter tribalCounter = new CardTypeCounter() {
@Override
protected boolean is(CardView card) {
- return card.getCardTypes().contains(CardType.TRIBAL);
+ return card.isTribal();
}
};
@@ -1312,8 +1271,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
}
// Sub & Super Types
if (!s) {
- for (String str : card.getSuperTypes()) {
- s |= str.toLowerCase().contains(searchStr);
+ for (SuperType str : card.getSuperTypes()) {
+ s |= str.toString().toLowerCase().contains(searchStr);
}
for (String str : card.getSubTypes()) {
s |= str.toLowerCase().contains(searchStr);
@@ -1388,8 +1347,8 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
t += ' ' + type.toString();
}
// Sub & Super Types
- for (String str : card.getSuperTypes()) {
- t += ' ' + str.toLowerCase();
+ for (SuperType type : card.getSuperTypes()) {
+ t += ' ' + type.toString().toLowerCase();
}
for (String str : card.getSubTypes()) {
t += ' ' + str.toLowerCase();
@@ -1523,7 +1482,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
for (ArrayList> gridRow : cardGrid) {
for (ArrayList stack : gridRow) {
for (CardView card : stack) {
- if (card.getSuperTypes().contains("Basic")) {
+ if (card.getSuperTypes().contains(SuperType.BASIC)) {
continue;
}
@@ -1896,7 +1855,7 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
}
// What row to add it to?
ArrayList> targetRow;
- if (separateCreatures && !newCard.getCardTypes().contains(CardType.CREATURE)) {
+ if (separateCreatures && !newCard.isCreature()) {
// Ensure row 2 exists
if (cardGrid.size() < 2) {
cardGrid.add(1, new ArrayList<>());
diff --git a/Mage.Client/src/main/java/mage/client/cards/Permanent.java b/Mage.Client/src/main/java/mage/client/cards/Permanent.java
index f23c01cc885..6d60ad1af25 100644
--- a/Mage.Client/src/main/java/mage/client/cards/Permanent.java
+++ b/Mage.Client/src/main/java/mage/client/cards/Permanent.java
@@ -34,28 +34,24 @@
package mage.client.cards;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.RenderingHints;
+import mage.cards.CardDimensions;
+import mage.cards.MagePermanent;
+import mage.cards.Sets;
+import mage.client.util.Config;
+import mage.client.util.TransformedImageCache;
+import mage.view.CounterView;
+import mage.view.PermanentView;
+
+import javax.swing.*;
+import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
-import javax.swing.PopupFactory;
-import mage.cards.CardDimensions;
-import mage.cards.MagePermanent;
-import mage.cards.Sets;
+
import static mage.client.constants.Constants.DAMAGE_MAX_LEFT;
import static mage.client.constants.Constants.POWBOX_TEXT_MAX_TOP;
-import mage.client.util.Config;
-import mage.constants.CardType;
-import mage.view.CounterView;
-import mage.view.PermanentView;
-import mage.client.util.TransformedImageCache;
/**
*
@@ -113,10 +109,10 @@ public class Permanent extends Card {
if (permanent.getOriginal().getColor().hasColor()) {
sb.append('\n').append(permanent.getOriginal().getColor().toString());
}
- if (permanent.getOriginal().getCardTypes().contains(CardType.CREATURE)) {
+ if (permanent.getOriginal().isCreature()) {
sb.append('\n').append(permanent.getOriginal().getPower()).append('/').append(permanent.getOriginal().getToughness());
}
- else if (permanent.getOriginal().getCardTypes().contains(CardType.PLANESWALKER)) {
+ else if (permanent.getOriginal().isPlanesWalker()) {
sb.append('\n').append(permanent.getOriginal().getLoyalty());
}
for (String rule: getRules()) {
diff --git a/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java b/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java
index f7e03f4e9c9..0c06598ab1e 100644
--- a/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java
+++ b/Mage.Client/src/main/java/mage/client/chat/LocalCommands.java
@@ -4,6 +4,7 @@ import mage.client.MageFrame;
import mage.client.SessionHandler;
import mage.client.util.IgnoreList;
import mage.interfaces.callback.ClientCallback;
+import mage.interfaces.callback.ClientCallbackMethod;
import mage.view.ChatMessage;
import java.text.DateFormat;
@@ -58,7 +59,7 @@ public final class LocalCommands {
private static void displayLocalCommandResponse(UUID chatId, String response) {
final String text = new StringBuilder().append("").append(response).append("").toString();
- ClientCallback chatMessage = new ClientCallback("chatMessage", chatId,
+ ClientCallback chatMessage = new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId,
new ChatMessage("", text, timeFormatter.format(new Date()), ChatMessage.MessageColor.BLUE));
MageFrame.getInstance().processCallback(chatMessage);
}
diff --git a/Mage.Client/src/main/java/mage/client/components/MageUI.java b/Mage.Client/src/main/java/mage/client/components/MageUI.java
index 48c14687f4a..86db500ea86 100644
--- a/Mage.Client/src/main/java/mage/client/components/MageUI.java
+++ b/Mage.Client/src/main/java/mage/client/components/MageUI.java
@@ -3,6 +3,7 @@ package mage.client.components;
import java.awt.Component;
import java.util.EnumMap;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
import javax.swing.JButton;
public class MageUI {
@@ -92,9 +93,9 @@ public class MageUI {
public void doClick(MageComponents name, int waitBeforeClick) throws InterruptedException {
final JButton j = getButton(name);
- Thread.sleep(waitBeforeClick);
+ TimeUnit.MILLISECONDS.sleep(waitBeforeClick);
while (!j.isEnabled()) {
- Thread.sleep(10);
+ TimeUnit.MILLISECONDS.sleep(10);
}
Thread t = new Thread(() -> j.doClick());
t.start();
diff --git a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java
index c193da98e34..43810b3e3e9 100644
--- a/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java
+++ b/Mage.Client/src/main/java/mage/client/components/tray/MageTray.java
@@ -1,7 +1,7 @@
package mage.client.components.tray;
import java.awt.*;
-
+import java.util.concurrent.TimeUnit;
import mage.client.MageFrame;
import org.apache.log4j.Logger;
import org.mage.plugins.card.utils.impl.ImageManagerImpl;
@@ -21,7 +21,6 @@ public enum MageTray {
private int state = 0;
-
public void install() {
if (!SystemTray.isSupported()) {
log.warn("SystemTray is not supported");
@@ -97,7 +96,7 @@ public enum MageTray {
int i = 0;
while (state != 3) {
trayIcon.setImage(i == 0 ? mainImage : flashedImage);
- Thread.sleep(600);
+ TimeUnit.MILLISECONDS.sleep(600);
i = i == 0 ? 1 : 0;
}
trayIcon.setImage(mainImage);
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java
index dc522a686b5..7d547a41bcd 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPane.java
@@ -53,7 +53,6 @@ public class DeckEditorPane extends MagePane {
* Creates new form TablesPane
*/
public DeckEditorPane() {
- this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
boolean initialized = false;
if (Plugins.instance.isThemePluginLoaded()) {
Map uiMap = new HashMap<>();
@@ -105,8 +104,8 @@ public class DeckEditorPane extends MagePane {
deckEditorPanel1 = new mage.client.deckeditor.DeckEditorPanel();
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(deckEditorPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE)
@@ -115,14 +114,12 @@ public class DeckEditorPane extends MagePane {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(deckEditorPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)
);
-
- pack();
}// //GEN-END:initComponents
private void initComponents(Component container) {
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE)
@@ -132,7 +129,7 @@ public class DeckEditorPane extends MagePane {
.addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)
);
- pack();
+
}
public DeckEditorPanel getPanel() {
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
index 32afd8a7bfc..6ac79cc17b7 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java
@@ -44,7 +44,6 @@ import java.util.concurrent.TimeUnit;
import javax.swing.*;
import javax.swing.Timer;
import javax.swing.filechooser.FileFilter;
-
import mage.cards.Card;
import mage.cards.Sets;
import mage.cards.decks.Deck;
@@ -58,8 +57,8 @@ import mage.client.SessionHandler;
import mage.client.cards.BigCard;
import mage.client.cards.ICardGrid;
import mage.client.constants.Constants.DeckEditorMode;
-import mage.client.deck.generator.DeckGenerator.DeckGeneratorException;
import mage.client.deck.generator.DeckGenerator;
+import mage.client.deck.generator.DeckGenerator.DeckGeneratorException;
import mage.client.dialog.AddLandDialog;
import mage.client.dialog.PreferencesDialog;
import mage.client.plugins.impl.Plugins;
@@ -189,7 +188,7 @@ public class DeckEditorPanel extends javax.swing.JPanel {
case LIMITED_BUILDING:
this.btnAddLand.setVisible(true);
this.txtTimeRemaining.setVisible(true);
- // Fall through to sideboarding
+ // Fall through to sideboarding
case SIDEBOARDING:
this.btnSubmit.setVisible(true);
this.btnSubmitTimer.setVisible(true);
@@ -711,84 +710,84 @@ public class DeckEditorPanel extends javax.swing.JPanel {
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
/*.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE))*/
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addGap(6, 6, 6)
- .addComponent(lblDeckName)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtDeckName, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE))
- .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(btnSave)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnLoad)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnNew)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnExit))
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(btnImport)
- .addContainerGap()
- .addComponent(btnGenDeck)
- .addContainerGap()
- .addComponent(btnAddLand)
- .addContainerGap()
- .addComponent(btnSubmit)
- .addContainerGap()
- .addComponent(btnSubmitTimer))
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(txtTimeRemaining))
- )
- .addContainerGap()));
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addGap(6, 6, 6)
+ .addComponent(lblDeckName)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtDeckName, javax.swing.GroupLayout.DEFAULT_SIZE, 189, Short.MAX_VALUE))
+ .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(btnSave)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnLoad)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnNew)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnExit))
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(btnImport)
+ .addContainerGap()
+ .addComponent(btnGenDeck)
+ .addContainerGap()
+ .addComponent(btnAddLand)
+ .addContainerGap()
+ .addComponent(btnSubmit)
+ .addContainerGap()
+ .addComponent(btnSubmitTimer))
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(txtTimeRemaining))
+ )
+ .addContainerGap()));
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtDeckName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblDeckName))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnSave)
- .addComponent(btnLoad)
- .addComponent(btnNew)
- .addComponent(btnExit))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnImport)
- .addComponent(btnGenDeck)
- .addComponent(btnAddLand)
- .addComponent(btnSubmit)
- .addComponent(btnSubmitTimer))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtTimeRemaining))
- //.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, isShowCardInfo ? 30 : 159, Short.MAX_VALUE)
- .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE)
- .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)));
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtDeckName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblDeckName))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(btnSave)
+ .addComponent(btnLoad)
+ .addComponent(btnNew)
+ .addComponent(btnExit))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(btnImport)
+ .addComponent(btnGenDeck)
+ .addComponent(btnAddLand)
+ .addComponent(btnSubmit)
+ .addComponent(btnSubmitTimer))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtTimeRemaining))
+ //.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, isShowCardInfo ? 30 : 159, Short.MAX_VALUE)
+ .addComponent(cardInfoPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 104, Short.MAX_VALUE)
+ .addComponent(bigCard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, 0)
- .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE)));
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(0, 0, 0)
+ .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE)));
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jSplitPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 615, Short.MAX_VALUE));
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jSplitPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 615, Short.MAX_VALUE));
}
/**
@@ -838,7 +837,6 @@ public class DeckEditorPanel extends javax.swing.JPanel {
});
}
-
private void btnLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoadActionPerformed
//fcSelectDeck.setCurrentDirectory(new File());
String lastFolder = MageFrame.getPreferences().get("lastDeckFolder", "");
@@ -850,10 +848,11 @@ public class DeckEditorPanel extends javax.swing.JPanel {
File file = fcSelectDeck.getSelectedFile();
{
/**
- * Work around a JFileChooser bug on Windows 7-10 with JRT 7+
- * In the case where the user selects the exact same file as was previously
- * selected without touching anything else in the dialog, getSelectedFile()
- * will erroneously return null due to some combination of our settings.
+ * Work around a JFileChooser bug on Windows 7-10 with JRT 7+ In
+ * the case where the user selects the exact same file as was
+ * previously selected without touching anything else in the
+ * dialog, getSelectedFile() will erroneously return null due to
+ * some combination of our settings.
*
* We manually sub in the last selected file in this case.
*/
@@ -893,10 +892,11 @@ public class DeckEditorPanel extends javax.swing.JPanel {
File file = fcSelectDeck.getSelectedFile();
{
/**
- * Work around a JFileChooser bug on Windows 7-10 with JRT 7+
- * In the case where the user selects the exact same file as was previously
- * selected without touching anything else in the dialog, getSelectedFile()
- * will erroneously return null due to some combination of our settings.
+ * Work around a JFileChooser bug on Windows 7-10 with JRT 7+ In
+ * the case where the user selects the exact same file as was
+ * previously selected without touching anything else in the
+ * dialog, getSelectedFile() will erroneously return null due to
+ * some combination of our settings.
*
* We manually sub in the last selected file in this case.
*/
@@ -1123,7 +1123,7 @@ class UpdateDeckTask extends SwingWorker {
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
SessionHandler.updateDeck(tableId, deck.getDeckCardLists());
- Thread.sleep(5000);
+ TimeUnit.SECONDS.sleep(5);
}
return null;
}
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java
index 51acb6e70e8..34d5427c7a5 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/CollectionViewerPane.java
@@ -66,8 +66,8 @@ public class CollectionViewerPane extends MagePane {
private void initComponents(Component container) {
Component component = container != null ? container : new CollectionViewerPanel();
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(component, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE)
@@ -76,8 +76,6 @@ public class CollectionViewerPane extends MagePane {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(component, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)
);
-
- pack();
}
@Override
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java
index 71f67900d9a..0ae3255a20b 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/MageCardComparator.java
@@ -26,10 +26,11 @@
*/
package mage.client.deckeditor.table;
-import java.util.Comparator;
import mage.cards.MageCard;
import mage.view.CardView;
+import java.util.Comparator;
+
/**
* {@link MageCard} comparator. Used to sort cards in Deck Editor Table View
* pane.
@@ -73,22 +74,22 @@ public class MageCardComparator implements Comparator {
break;
// Color
case 3:
- aCom = CardHelper.getColor(a);
- bCom = CardHelper.getColor(b);
+ aCom = a.getColorText();
+ bCom = a.getColorText();
break;
// Type
case 4:
- aCom = CardHelper.getType(a);
- bCom = CardHelper.getType(b);
+ aCom = a.getTypeText();
+ bCom = b.getTypeText();
break;
// Stats, attack and defense
case 5:
aCom = (float) -1;
bCom = (float) -1;
- if (CardHelper.isCreature(a)) {
+ if (a.isCreature()) {
aCom = new Float(a.getPower() + '.' + (a.getToughness().startsWith("-") ? "0" : a.getToughness()));
}
- if (CardHelper.isCreature(b)) {
+ if (b.isCreature()) {
bCom = new Float(b.getPower() + '.' + (b.getToughness().startsWith("-") ? "0" : b.getToughness()));
}
break;
diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java
index 31ea45eb342..e7d73e423b1 100644
--- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java
+++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TableModel.java
@@ -27,24 +27,6 @@
*/
package mage.client.deckeditor.table;
-import java.awt.Dimension;
-import java.awt.Image;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.UUID;
-import javax.swing.JTable;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableColumnModel;
import mage.client.MageFrame;
import mage.client.cards.BigCard;
import mage.client.cards.CardEventSource;
@@ -55,7 +37,6 @@ import mage.client.util.Config;
import mage.client.util.Event;
import mage.client.util.Listener;
import mage.client.util.gui.GuiDisplayUtil;
-import mage.constants.CardType;
import mage.constants.EnlargeMode;
import mage.view.CardView;
import mage.view.CardsView;
@@ -64,6 +45,16 @@ import org.jdesktop.swingx.JXPanel;
import org.mage.card.arcane.ManaSymbols;
import org.mage.card.arcane.UI;
+import javax.swing.*;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableColumnModel;
+import java.awt.*;
+import java.awt.event.*;
+import java.awt.image.BufferedImage;
+import java.util.*;
+import java.util.List;
+import java.util.Map.Entry;
+
/**
* Table Model for card list.
*
@@ -133,22 +124,22 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
addCard(card, bigCard, gameId);
}
if (updateCountsCallback != null) {
- if (card.getCardTypes().contains(CardType.LAND)) {
+ if (card.isLand()) {
landCount++;
}
- if (card.getCardTypes().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
creatureCount++;
}
- if (card.getCardTypes().contains(CardType.INSTANT)) {
+ if (card.isInstant()) {
instantCount++;
}
- if (card.getCardTypes().contains(CardType.SORCERY)) {
+ if (card.isSorcery()) {
sorceryCount++;
}
- if (card.getCardTypes().contains(CardType.ENCHANTMENT)) {
+ if (card.isEnchantment()) {
enchantmentCount++;
}
- if (card.getCardTypes().contains(CardType.ARTIFACT)) {
+ if (card.isArtifact()) {
artifactCount++;
}
}
@@ -260,11 +251,11 @@ public class TableModel extends AbstractTableModel implements ICardGrid {
castingCost = ManaSymbols.replaceSymbolsWithHTML(castingCost, ManaSymbols.Type.TABLE);
return "" + castingCost + "";
case 3:
- return CardHelper.getColor(c);
+ return c.getColorText();
case 4:
- return CardHelper.getType(c);
+ return c.getTypeText();
case 5:
- return CardHelper.isCreature(c) ? c.getPower() + '/'
+ return c.isCreature() ? c.getPower() + '/'
+ c.getToughness() : "-";
case 6:
return c.getRarity().toString();
diff --git a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java
index 91324908844..b9ac1834ec1 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/ConnectDialog.java
@@ -45,6 +45,7 @@ import java.io.InputStreamReader;
import java.io.Writer;
import java.net.InetSocketAddress;
import java.net.Proxy;
+import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.UnknownHostException;
@@ -391,7 +392,12 @@ public class ConnectDialog extends MageDialog {
connection.setUsername(this.txtUserName.getText().trim());
connection.setPassword(this.txtPassword.getText().trim());
connection.setForceDBComparison(this.chkForceUpdateDB.isSelected());
- connection.setUserIdStr(System.getProperty("user.name") + ':' + MagePreferences.getUserNames());
+ String allMAC = "";
+ try {
+ allMAC = connection.getMAC();
+ } catch (SocketException ex) {
+ }
+ connection.setUserIdStr(System.getProperty("user.name") + ":" + System.getProperty("os.name") + ":" + MagePreferences.getUserNames() + ":" + allMAC);
MageFrame.getPreferences().put(KEY_CONNECT_FLAG, ((CountryItemEditor) cbFlag.getEditor()).getImageItem());
PreferencesDialog.setProxyInformation(connection);
@@ -429,7 +435,7 @@ public class ConnectDialog extends MageDialog {
if (result) {
lblStatus.setText("");
connected();
- MageFrame.getInstance().showGames(false);
+ MageFrame.getInstance().prepareAndShowTablesPane();
} else {
lblStatus.setText("Could not connect");
}
diff --git a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java
index 50d74717f36..52c76236173 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java
@@ -27,14 +27,16 @@
*/
package mage.client.dialog;
-import java.util.UUID;
-import javax.swing.JOptionPane;
import mage.cards.decks.importer.DeckImporterUtil;
import mage.client.MageFrame;
import mage.client.SessionHandler;
+import mage.players.PlayerType;
import mage.remote.Session;
import org.apache.log4j.Logger;
+import javax.swing.*;
+import java.util.UUID;
+
/**
*
* @author BetaSteward_at_googlemail.com
@@ -143,9 +145,9 @@ public class JoinTableDialog extends MageDialog {
try {
PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD_JOIN, txtPassword.getText());
if (isTournament) {
- joined = session.joinTournamentTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), "Human", 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText());
+ joined = session.joinTournamentTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), PlayerType.HUMAN, 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText());
} else {
- joined = session.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), "Human", 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText());
+ joined = session.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), PlayerType.HUMAN, 1, DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), this.txtPassword.getText());
}
} catch (Exception ex) {
diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form
index 6f93568ea09..a5a176504e9 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form
+++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.form
@@ -52,6 +52,10 @@
+
+
+
+
@@ -126,6 +130,8 @@
+
+
@@ -227,6 +233,10 @@
+
+
+
+
diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java
index c94ebc18085..f82aae965a8 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java
@@ -27,14 +27,6 @@
*/
package mage.client.dialog;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-import javax.swing.*;
-
import mage.cards.decks.importer.DeckImporterUtil;
import mage.client.MageFrame;
import mage.client.SessionHandler;
@@ -48,12 +40,19 @@ import mage.constants.MultiplayerAttackOption;
import mage.constants.RangeOfInfluence;
import mage.constants.SkillLevel;
import mage.game.match.MatchOptions;
+import mage.players.PlayerType;
import mage.view.GameTypeView;
import mage.view.TableView;
import org.apache.log4j.Logger;
+import javax.swing.*;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
/**
- *
* @author BetaSteward_at_googlemail.com
*/
public class NewTableDialog extends MageDialog {
@@ -65,7 +64,7 @@ public class NewTableDialog extends MageDialog {
private UUID roomId;
private String lastSessionId;
private final List players = new ArrayList<>();
- private final List prefPlayerTypes = new ArrayList<>();
+ private final List prefPlayerTypes = new ArrayList<>();
private static final String LIMITED = "Limited";
@@ -124,6 +123,8 @@ public class NewTableDialog extends MageDialog {
pnlOtherPlayers = new javax.swing.JPanel();
jSeparator1 = new javax.swing.JSeparator();
btnOK = new javax.swing.JButton();
+ btnPreviousConfiguration1 = new javax.swing.JButton();
+ btnPreviousConfiguration2 = new javax.swing.JButton();
btnCancel = new javax.swing.JButton();
lblQuitRatio = new javax.swing.JLabel();
lblEdhPowerLevel = new javax.swing.JLabel();
@@ -193,6 +194,13 @@ public class NewTableDialog extends MageDialog {
btnOK.setText("OK");
btnOK.addActionListener(evt -> btnOKActionPerformed(evt));
+ btnPreviousConfiguration1.setText("M1");
+ btnPreviousConfiguration1.setToolTipText("Load saved Match configuration #1");
+ btnPreviousConfiguration1.addActionListener(evt -> btnPreviousConfigurationActionPerformed(evt, 1));
+ btnPreviousConfiguration2.setText("M2");
+ btnPreviousConfiguration2.setToolTipText("Load saved Match configuration #2");
+ btnPreviousConfiguration2.addActionListener(evt -> btnPreviousConfigurationActionPerformed(evt, 2));
+
btnCancel.setText("Cancel");
btnCancel.addActionListener(evt -> btnCancelActionPerformed(evt));
@@ -205,157 +213,163 @@ public class NewTableDialog extends MageDialog {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblName)
+ .addComponent(lbDeckType)
+ .addComponent(lblGameType))
+ .addGap(6, 6, 6)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(18, 18, 18)
+ .addComponent(chkRollbackTurnsAllowed)
+ .addGap(13, 13, 13)
+ .addComponent(lblFreeMulligans)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lbTimeLimit)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lblPassword)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnPreviousConfiguration1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnPreviousConfiguration2, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(chkRated)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(lblQuitRatio)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblEdhPowerLevel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))))
+ .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addComponent(btnOK)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnCancel))
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblNumPlayers)
+ .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblRange)
+ .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(lblAttack)
+ .addGap(116, 116, 116)
+ .addComponent(lblSkillLevel))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGap(18, 18, 18)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblNumWins)
+ .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addComponent(jSeparator2)
+ .addComponent(player1Panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING))
+ .addContainerGap())
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblName)
- .addComponent(lbDeckType)
- .addComponent(lblGameType))
- .addGap(6, 6, 6)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addGroup(layout.createSequentialGroup()
- .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 270, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(18, 18, 18)
- .addComponent(chkRollbackTurnsAllowed)
- .addGap(13, 13, 13)
- .addComponent(lblFreeMulligans)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(layout.createSequentialGroup()
- .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lbTimeLimit)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblPassword)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(layout.createSequentialGroup()
- .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 332, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(chkRated)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(lblQuitRatio)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblEdhPowerLevel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))))
- .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(btnOK)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnCancel))
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblNumPlayers)
- .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblRange)
- .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(lblAttack)
- .addGap(116, 116, 116)
- .addComponent(lblSkillLevel))
- .addGroup(layout.createSequentialGroup()
- .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, 177, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblNumWins)
- .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addComponent(jSeparator2)
- .addComponent(player1Panel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING))
- .addContainerGap())
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, 660, Short.MAX_VALUE)
- .addContainerGap()))
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE, 660, Short.MAX_VALUE)
+ .addContainerGap()))
);
layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(4, 4, 4)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblName)
- .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblPassword)
- .addComponent(lbTimeLimit)
- .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lbDeckType)
- .addComponent(lblQuitRatio)
- .addComponent(chkRated)
- .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblEdhPowerLevel)
- .addComponent(chkRated)
- .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblFreeMulligans)
- .addComponent(chkRollbackTurnsAllowed))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblGameType)))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(6, 6, 6)
- .addComponent(lblNumPlayers)
- .addGap(0, 0, 0)
- .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(4, 4, 4)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblName)
+ .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(btnPreviousConfiguration1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(btnPreviousConfiguration2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblPassword)
+ .addComponent(lbTimeLimit)
+ .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbDeckType)
+ .addComponent(lblQuitRatio)
+ .addComponent(chkRated)
+ .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblEdhPowerLevel)
+ .addComponent(chkRated)
+ .addComponent(spnEdhPowerLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblFreeMulligans)
+ .addComponent(chkRollbackTurnsAllowed))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblGameType)))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(6, 6, 6)
+ .addComponent(lblNumPlayers)
+ .addGap(0, 0, 0)
+ .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblSkillLevel)
+ .addComponent(lblNumWins)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lblRange)
+ .addComponent(lblAttack)))
+ .addGap(0, 0, 0)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jLabel1)
+ .addGap(0, 0, 0)
+ .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(16, 16, 16)
+ .addComponent(jLabel2)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE)
+ .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(btnCancel)
+ .addComponent(btnOK))
+ .addGap(0, 0, 0))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblSkillLevel)
- .addComponent(lblNumWins)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(lblRange)
- .addComponent(lblAttack)))
- .addGap(0, 0, 0)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbRange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(cbAttackOption, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jLabel1)
- .addGap(0, 0, 0)
- .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(16, 16, 16)
- .addComponent(jLabel2)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE)
- .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnCancel)
- .addComponent(btnOK))
- .addGap(0, 0, 0))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(201, 201, 201)
- .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(167, Short.MAX_VALUE)))
+ .addGroup(layout.createSequentialGroup()
+ .addGap(201, 201, 201)
+ .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(167, Short.MAX_VALUE)))
);
pack();
@@ -367,10 +381,15 @@ public class NewTableDialog extends MageDialog {
this.hideDialog();
}//GEN-LAST:event_btnCancelActionPerformed
+ private void btnPreviousConfigurationActionPerformed(java.awt.event.ActionEvent evt, int i) {//GEN-FIRST:event_btnPreviousConfigurationActionPerformed
+ currentSettingVersion = i;
+ setGameSettingsFromPrefs(currentSettingVersion);
+ }//GEN-LAST:event_btnPreviousConfigurationActionPerformed
+
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed
GameTypeView gameType = (GameTypeView) cbGameType.getSelectedItem();
MatchOptions options = new MatchOptions(this.txtName.getText(), gameType.getName(), false, 2);
- options.getPlayerTypes().add("Human");
+ options.getPlayerTypes().add(PlayerType.HUMAN);
for (TablePlayerPanel player : players) {
options.getPlayerTypes().add(player.getPlayerType());
}
@@ -404,11 +423,11 @@ public class NewTableDialog extends MageDialog {
roomId,
table.getTableId(),
this.player1Panel.getPlayerName(),
- "Human", 1,
+ PlayerType.HUMAN, 1,
DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()),
this.txtPassword.getText())) {
for (TablePlayerPanel player : players) {
- if (!player.getPlayerType().equals("Human")) {
+ if (player.getPlayerType() != PlayerType.HUMAN) {
if (!player.joinTable(roomId, table.getTableId())) {
// error message must be send by the server
SessionHandler.removeTable(roomId, table.getTableId());
@@ -509,7 +528,7 @@ public class NewTableDialog extends MageDialog {
if (numPlayers > players.size()) {
while (players.size() != numPlayers) {
TablePlayerPanel playerPanel = new TablePlayerPanel();
- String playerType = "Human";
+ PlayerType playerType = PlayerType.HUMAN;
if (prefPlayerTypes.size() >= players.size() && !players.isEmpty()) {
playerType = prefPlayerTypes.get(players.size() - 1);
}
@@ -562,11 +581,12 @@ public class NewTableDialog extends MageDialog {
for (TablePlayerPanel tablePlayerPanel : players) {
tablePlayerPanel.init(i++, tablePlayerPanel.getPlayerType());
}
- setGameSettingsFromPrefs();
this.setModal(true);
setGameOptions();
this.setLocation(150, 100);
}
+ currentSettingVersion = 0;
+ setGameSettingsFromPrefs(currentSettingVersion);
this.setVisible(true);
}
@@ -591,47 +611,61 @@ public class NewTableDialog extends MageDialog {
/**
* set the table settings from java prefs
*/
- private void setGameSettingsFromPrefs() {
- txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NAME, "Game"));
- txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD, ""));
+ int currentSettingVersion = 0;
+ private void setGameSettingsFromPrefs(int version) {
+ currentSettingVersion = version;
+ String versionStr = "";
+ if (currentSettingVersion == 1) {
+ versionStr = "1";
+ btnPreviousConfiguration1.requestFocus();
+ } else if (currentSettingVersion == 2) {
+ versionStr = "2";
+ btnPreviousConfiguration2.requestFocus();
+ } else {
+ btnPreviousConfiguration2.getParent().requestFocus();
+ }
+ txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NAME + versionStr, "Game"));
+ txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD + versionStr, ""));
- String playerTypes = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES, "Human");
+ String playerTypes = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES + versionStr, "Human");
prefPlayerTypes.clear();
- prefPlayerTypes.addAll(Arrays.asList(playerTypes.split(",")));
- this.spnNumPlayers.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS, "2")));
+ for (String pType : playerTypes.split(",")) {
+ prefPlayerTypes.add(PlayerType.getByDescription(pType));
+ }
+ this.spnNumPlayers.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS + versionStr, "2")));
- String gameTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE, "Two Player Duel");
+ String gameTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE + versionStr, "Two Player Duel");
for (GameTypeView gtv : SessionHandler.getGameTypes()) {
if (gtv.getName().equals(gameTypeName)) {
cbGameType.setSelectedItem(gtv);
break;
}
}
- int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT, "1500"));
+ int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT + versionStr, "1500"));
for (MatchTimeLimit mtl : MatchTimeLimit.values()) {
if (mtl.getTimeLimit() == timeLimit) {
this.cbTimeLimit.setSelectedItem(mtl);
break;
}
}
- cbDeckType.setSelectedItem(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE, "Limited"));
- String deckFile = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE, null);
+ cbDeckType.setSelectedItem(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE + versionStr, "Limited"));
+ String deckFile = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE + versionStr, null);
if (deckFile != null) {
this.player1Panel.setDeckFile(deckFile);
}
- this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS, "2")));
- this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED, "Yes").equals("Yes"));
- this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RATED, "No").equals("Yes"));
- this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS, "0")));
+ this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS + versionStr, "2")));
+ this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED + versionStr, "Yes").equals("Yes"));
+ this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RATED + versionStr, "No").equals("Yes"));
+ this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS + versionStr, "0")));
- int range = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RANGE, "1"));
+ int range = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_RANGE + versionStr, "1"));
for (RangeOfInfluence roi : RangeOfInfluence.values()) {
if (roi.getRange() == range) {
this.cbRange.setSelectedItem(roi);
break;
}
}
- String attackOption = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION, "Attack Multiple Players");
+ String attackOption = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION + versionStr, "Attack Multiple Players");
for (MultiplayerAttackOption mao : MultiplayerAttackOption.values()) {
if (mao.toString().equals(attackOption)) {
this.cbAttackOption.setSelectedItem(mao);
@@ -658,21 +692,27 @@ public class NewTableDialog extends MageDialog {
* @param deckFile
*/
private void saveGameSettingsToPrefs(MatchOptions options, String deckFile) {
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NAME, options.getName());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD, options.getPassword());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE, options.getDeckType());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT, Integer.toString(options.getPriorityTime()));
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE, options.getGameType());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS, Integer.toString(options.getWinsNeeded()));
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED, options.isRollbackTurnsAllowed() ? "Yes" : "No");
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RATED, options.isRated() ? "Yes" : "No");
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS, Integer.toString(options.getFreeMulligans()));
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE, deckFile);
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS, spnNumPlayers.getValue().toString());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RANGE, Integer.toString(options.getRange().getRange()));
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION, options.getAttackOption().toString());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL, options.getSkillLevel().toString());
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_QUIT_RATIO, Integer.toString(options.getQuitRatio()));
+ String versionStr = "";
+ if (currentSettingVersion == 1) {
+ versionStr = "1";
+ } else if (currentSettingVersion == 2) {
+ versionStr = "2";
+ }
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NAME + versionStr, options.getName());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PASSWORD + versionStr, options.getPassword());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_TYPE + versionStr, options.getDeckType());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_TIME_LIMIT + versionStr, Integer.toString(options.getPriorityTime()));
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_GAME_TYPE + versionStr, options.getGameType());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_WINS + versionStr, Integer.toString(options.getWinsNeeded()));
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ROLLBACK_TURNS_ALLOWED + versionStr, options.isRollbackTurnsAllowed() ? "Yes" : "No");
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RATED + versionStr, options.isRated() ? "Yes" : "No");
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_OF_FREE_MULLIGANS + versionStr, Integer.toString(options.getFreeMulligans()));
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_DECK_FILE + versionStr, deckFile);
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_NUMBER_PLAYERS + versionStr, spnNumPlayers.getValue().toString());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_RANGE + versionStr, Integer.toString(options.getRange().getRange()));
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_ATTACK_OPTION + versionStr, options.getAttackOption().toString());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL + versionStr, options.getSkillLevel().toString());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_QUIT_RATIO + versionStr, Integer.toString(options.getQuitRatio()));
StringBuilder playerTypesString = new StringBuilder();
for (Object player : players) {
if (playerTypesString.length() > 0) {
@@ -681,12 +721,14 @@ public class NewTableDialog extends MageDialog {
TablePlayerPanel tpp = (TablePlayerPanel) player;
playerTypesString.append(tpp.getPlayerType());
}
- PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES, playerTypesString.toString());
+ PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_TABLE_PLAYER_TYPES + versionStr, playerTypesString.toString());
}
-
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnCancel;
private javax.swing.JButton btnOK;
+ private javax.swing.JButton btnPreviousConfiguration1;
+ private javax.swing.JButton btnPreviousConfiguration2;
private javax.swing.JComboBox cbAttackOption;
private javax.swing.JComboBox cbDeckType;
private javax.swing.JComboBox cbGameType;
@@ -723,5 +765,4 @@ public class NewTableDialog extends MageDialog {
private javax.swing.JTextField txtName;
private javax.swing.JTextField txtPassword;
// End of variables declaration//GEN-END:variables
-
}
diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form
index 9268a0ec612..26c324e4cad 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form
+++ b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.form
@@ -64,6 +64,10 @@
+
+
+
+
@@ -97,7 +101,7 @@
-
+
@@ -210,6 +214,8 @@
+
+
@@ -511,7 +517,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java
index dd6caba68c3..fec1372e907 100644
--- a/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java
+++ b/Mage.Client/src/main/java/mage/client/dialog/NewTournamentDialog.java
@@ -26,28 +26,18 @@
* or implied, of BetaSteward_at_googlemail.com.
*/
-/*
+ /*
* NewTournamentDialog.java
*
* Created on Jan 28, 2011, 12:15:56 PM
*/
package mage.client.dialog;
-import java.awt.Component;
+import java.awt.*;
import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
+import java.util.*;
import java.util.List;
-import java.util.UUID;
-import javax.swing.ComboBoxModel;
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JFileChooser;
-import javax.swing.JOptionPane;
-import javax.swing.JTextArea;
-import javax.swing.SpinnerNumberModel;
+import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import mage.cards.decks.Deck;
import mage.cards.decks.importer.DeckImporterUtil;
@@ -65,13 +55,13 @@ import mage.game.draft.DraftOptions;
import mage.game.draft.DraftOptions.TimingOption;
import mage.game.tournament.LimitedOptions;
import mage.game.tournament.TournamentOptions;
+import mage.players.PlayerType;
import mage.view.GameTypeView;
import mage.view.TableView;
import mage.view.TournamentTypeView;
import org.apache.log4j.Logger;
/**
- *
* @author BetaSteward_at_googlemail.com
*/
public class NewTournamentDialog extends MageDialog {
@@ -93,7 +83,9 @@ public class NewTournamentDialog extends MageDialog {
private String cubeFromDeckFilename = "";
private boolean automaticChange = false;
- /** Creates new form NewTournamentDialog */
+ /**
+ * Creates new form NewTournamentDialog
+ */
public NewTournamentDialog() {
initComponents();
lastSessionId = "";
@@ -121,22 +113,23 @@ public class NewTournamentDialog extends MageDialog {
cbDraftCube.setModel(new DefaultComboBoxModel(SessionHandler.getDraftCubes()));
cbDraftTiming.setModel(new DefaultComboBoxModel(DraftOptions.TimingOption.values()));
// update player types
- int i=2;
- for (TournamentPlayerPanel tournamentPlayerPanel :players) {
+ int i = 2;
+ for (TournamentPlayerPanel tournamentPlayerPanel : players) {
tournamentPlayerPanel.init(i++);
}
cbAllowSpectators.setSelected(true);
- setTournamentSettingsFromPrefs();
this.setModal(true);
this.setLocation(150, 100);
}
+ currentSettingVersion = 0;
+ setTournamentSettingsFromPrefs(currentSettingVersion);
this.setVisible(true);
}
- /** This method is called from within the constructor to
- * initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is
- * always regenerated by the Form Editor.
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
@@ -183,6 +176,8 @@ public class NewTournamentDialog extends MageDialog {
player1Panel = new mage.client.table.NewPlayerPanel();
pnlPlayers = new javax.swing.JPanel();
pnlOtherPlayers = new javax.swing.JPanel();
+ btnSavedConfiguration1 = new javax.swing.JButton();
+ btnSavedConfiguration2 = new javax.swing.JButton();
btnOk = new javax.swing.JButton();
btnCancel = new javax.swing.JButton();
pnlRandomPacks = new javax.swing.JPanel();
@@ -193,7 +188,7 @@ public class NewTournamentDialog extends MageDialog {
lblName.setText("Name:");
- lbTimeLimit.setText("Time Limit:");
+ lbTimeLimit.setText("Time:");
lbTimeLimit.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. ");
org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, cbTimeLimit, org.jdesktop.beansbinding.ObjectProperty.create(), lbTimeLimit, org.jdesktop.beansbinding.BeanProperty.create("labelFor"));
@@ -201,7 +196,7 @@ public class NewTournamentDialog extends MageDialog {
cbTimeLimit.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. ");
- lbSkillLevel.setText("Skill Level:");
+ lbSkillLevel.setText("Skill:");
lbSkillLevel.setToolTipText("The time a player has for the whole match. If a player runs out of time during a game, he loses the complete match. ");
cbSkillLevel.setToolTipText("This option can be used to make it easier to find matches
\nwith opponents of the appropriate skill level.");
@@ -213,7 +208,7 @@ public class NewTournamentDialog extends MageDialog {
lblTournamentType.setText("Tournament Type:");
- cbTournamentType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ cbTournamentType.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"}));
cbTournamentType.addActionListener(evt -> cbTournamentTypeActionPerformed(evt));
lbDeckType.setText("Deck Type:");
@@ -235,7 +230,7 @@ public class NewTournamentDialog extends MageDialog {
lblDraftCube.setText("Draft Cube:");
- cbDraftCube.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ cbDraftCube.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"}));
cbDraftCube.addActionListener(evt -> cbDraftCubeActionPerformed(evt));
lblNumRounds.setText("Number of Swiss Rounds:");
@@ -260,27 +255,27 @@ public class NewTournamentDialog extends MageDialog {
jLabel6.setText("Timing:");
- cbDraftTiming.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ cbDraftTiming.setModel(new javax.swing.DefaultComboBoxModel(new String[]{"Item 1", "Item 2", "Item 3", "Item 4"}));
cbDraftTiming.addActionListener(evt -> cbDraftTimingActionPerformed(evt));
javax.swing.GroupLayout pnlDraftOptionsLayout = new javax.swing.GroupLayout(pnlDraftOptions);
pnlDraftOptions.setLayout(pnlDraftOptionsLayout);
pnlDraftOptionsLayout.setHorizontalGroup(
- pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(pnlDraftOptionsLayout.createSequentialGroup()
- .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(19, Short.MAX_VALUE))
+ pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnlDraftOptionsLayout.createSequentialGroup()
+ .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(19, Short.MAX_VALUE))
);
pnlDraftOptionsLayout.setVerticalGroup(
- pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(pnlDraftOptionsLayout.createSequentialGroup()
- .addGap(3, 3, 3)
- .addGroup(pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap())
+ pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(pnlDraftOptionsLayout.createSequentialGroup()
+ .addGap(3, 3, 3)
+ .addGroup(pnlDraftOptionsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(cbDraftTiming, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap())
);
cbAllowSpectators.setText("Allow spectators");
@@ -306,14 +301,27 @@ public class NewTournamentDialog extends MageDialog {
javax.swing.GroupLayout pnlPlayersLayout = new javax.swing.GroupLayout(pnlPlayers);
pnlPlayers.setLayout(pnlPlayersLayout);
pnlPlayersLayout.setHorizontalGroup(
- pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pnlPlayersLayout.setVerticalGroup(
- pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ pnlPlayersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnlOtherPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
+ btnSavedConfiguration1.setText("T1");
+ btnSavedConfiguration1.setToolTipText("Load saved tournament configuration #1");
+ btnSavedConfiguration1.addActionListener(evt -> btnSavedConfigurationActionPerformed(evt, 1));
+ btnSavedConfiguration1.setVisible(true);
+
+ btnSavedConfiguration2.setText("T2");
+ btnSavedConfiguration2.setToolTipText("Load saved tournament configuration #2");
+ btnSavedConfiguration2.addActionListener(evt -> btnSavedConfigurationActionPerformed(evt, 2));
+ btnSavedConfiguration2.setVisible(true);
+
+ btnOk.setText("OK");
+ btnOk.addActionListener(evt -> btnOkActionPerformed(evt));
+
btnOk.setText("OK");
btnOk.addActionListener(evt -> btnOkActionPerformed(evt));
@@ -333,170 +341,176 @@ public class NewTournamentDialog extends MageDialog {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(pnlPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(lblNbrPlayers)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblNbrSeats)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnNumSeats, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(lblPacks)
- .addComponent(lblPlayer1))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(28, 28, 28)
- .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(lblNumRounds))
- .addGroup(layout.createSequentialGroup()
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(lblConstructionTime)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(chkRollbackTurnsAllowed))
- .addGroup(layout.createSequentialGroup()
- .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cbAllowSpectators))))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addComponent(btnOk)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnCancel))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(lblDraftCube)
- .addComponent(lblTournamentType)
- .addComponent(lbDeckType)
- .addComponent(lblGameType))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(layout.createSequentialGroup()
- .addGap(28, 28, 28)
- .addComponent(lblNumWins)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblQuitRatio)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(chkRated))
- .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGroup(layout.createSequentialGroup()
- .addComponent(lblName)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lbTimeLimit)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(lbSkillLevel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblPassword)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(layout.createSequentialGroup()
- .addComponent(lblFreeMulligans)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)))))
- .addComponent(player1Panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(pnlRandomPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addContainerGap())
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(pnlPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(lblNbrPlayers)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnNumPlayers, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lblNbrSeats)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnNumSeats, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(lblPacks)
+ .addComponent(lblPlayer1))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(28, 28, 28)
+ .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(lblNumRounds))
+ .addGroup(layout.createSequentialGroup()
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(lblConstructionTime)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(chkRollbackTurnsAllowed))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cbAllowSpectators))))
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addComponent(btnOk)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnCancel))
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(lblDraftCube)
+ .addComponent(lblTournamentType)
+ .addComponent(lbDeckType)
+ .addComponent(lblGameType))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(28, 28, 28)
+ .addComponent(lblNumWins)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lblQuitRatio)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(chkRated))
+ .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, 290, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(lblName)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lbTimeLimit)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(lbSkillLevel)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lblPassword)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnSavedConfiguration1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnSavedConfiguration2))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(lblFreeMulligans)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)))))
+ .addComponent(player1Panel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(pnlRandomPacks, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap())
);
layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGap(4, 4, 4)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblName)
- .addComponent(lbTimeLimit)
- .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblPassword)
- .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lbSkillLevel)
- .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(lblFreeMulligans)
- .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblNumWins)
- .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblQuitRatio)
- .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(chkRated))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblTournamentType))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblDraftCube))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lbDeckType))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(lblGameType)
- .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblPacks)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(pnlPacks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(pnlRandomPacks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbAllowSpectators, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblNumRounds))
- .addComponent(lblNbrPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(spnNumPlayers)
- .addComponent(lblNbrSeats, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(spnNumSeats)
- .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblPlayer1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lblConstructionTime)
- .addComponent(chkRollbackTurnsAllowed)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(btnOk)
- .addComponent(btnCancel))
- .addContainerGap())
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(4, 4, 4)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblName)
+ .addComponent(lbTimeLimit)
+ .addComponent(cbTimeLimit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblPassword)
+ .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(btnSavedConfiguration1)
+ .addComponent(btnSavedConfiguration2)
+ .addComponent(lbSkillLevel)
+ .addComponent(cbSkillLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lblFreeMulligans)
+ .addComponent(spnFreeMulligans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblNumWins)
+ .addComponent(spnNumWins, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblQuitRatio)
+ .addComponent(spnQuitRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(chkRated))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbTournamentType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblTournamentType))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbDraftCube, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblDraftCube))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbDeckType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbDeckType))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(lblGameType)
+ .addComponent(cbGameType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lblPacks)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(pnlPacks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(pnlRandomPacks, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbAllowSpectators, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(spnNumRounds, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblNumRounds))
+ .addComponent(lblNbrPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(spnNumPlayers)
+ .addComponent(lblNbrSeats, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(spnNumSeats)
+ .addComponent(pnlDraftOptions, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(lblPlayer1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(spnConstructTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lblConstructionTime)
+ .addComponent(chkRollbackTurnsAllowed)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(player1Panel, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(pnlPlayers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(btnOk)
+ .addComponent(btnCancel))
+ .addContainerGap())
);
bindingGroup.bind();
@@ -508,20 +522,25 @@ public class NewTournamentDialog extends MageDialog {
setTournamentOptions((Integer) this.spnNumPlayers.getValue());
}//GEN-LAST:event_cbTournamentTypeActionPerformed
+ private void btnSavedConfigurationActionPerformed(java.awt.event.ActionEvent evt, int setting) {//GEN-FIRST:event_btnSavedConfigurationActionPerformed
+ currentSettingVersion = setting;
+ setTournamentSettingsFromPrefs(currentSettingVersion);
+ }//GEN-LAST:event_btnSavedConfigurationActionPerformed
+
private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOkActionPerformed
TournamentTypeView tournamentType = (TournamentTypeView) cbTournamentType.getSelectedItem();
- int numSeats = (Integer)this.spnNumSeats.getValue();
+ int numSeats = (Integer) this.spnNumSeats.getValue();
TournamentOptions tOptions = new TournamentOptions(this.txtName.getText(), "", numSeats);
tOptions.setTournamentType(tournamentType.getName());
tOptions.setPassword(txtPassword.getText());
- tOptions.getPlayerTypes().add("Human");
+ tOptions.getPlayerTypes().add(PlayerType.HUMAN);
tOptions.setWatchingAllowed(cbAllowSpectators.isSelected());
- tOptions.setQuitRatio((Integer)spnQuitRatio.getValue());
- for (TournamentPlayerPanel player: players) {
- tOptions.getPlayerTypes().add((String) player.getPlayerType().getSelectedItem());
+ tOptions.setQuitRatio((Integer) spnQuitRatio.getValue());
+ for (TournamentPlayerPanel player : players) {
+ tOptions.getPlayerTypes().add((PlayerType) player.getPlayerType().getSelectedItem());
}
if (!tournamentType.isElimination()) {
- tOptions.setNumberRounds((Integer)spnNumRounds.getValue());
+ tOptions.setNumberRounds((Integer) spnNumRounds.getValue());
}
if (tournamentType.isDraft()) {
DraftOptions options = new DraftOptions();
@@ -533,21 +552,21 @@ public class NewTournamentDialog extends MageDialog {
tOptions.setLimitedOptions(new LimitedOptions());
}
if (tournamentType.isLimited()) {
- tOptions.getLimitedOptions().setConstructionTime((Integer)this.spnConstructTime.getValue() * 60);
+ tOptions.getLimitedOptions().setConstructionTime((Integer) this.spnConstructTime.getValue() * 60);
tOptions.getLimitedOptions().setIsRandom(tournamentType.isRandom());
if (tournamentType.isCubeBooster()) {
tOptions.getLimitedOptions().setDraftCubeName(this.cbDraftCube.getSelectedItem().toString());
if (!(cubeFromDeckFilename.isEmpty())) {
- Deck cubeFromDeck = new Deck();
+ Deck cubeFromDeck = new Deck();
try {
cubeFromDeck = Deck.load(DeckImporterUtil.importDeck(cubeFromDeckFilename), true, true);
} catch (GameException e1) {
- JOptionPane.showMessageDialog(MageFrame.getDesktop(), e1.getMessage(), "Error loading deck", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(MageFrame.getDesktop(), e1.getMessage(), "Error loading deck", JOptionPane.ERROR_MESSAGE);
}
if (cubeFromDeck != null) {
cubeFromDeck.clearLayouts();
tOptions.getLimitedOptions().setCubeFromDeck(cubeFromDeck);
- }
+ }
}
} else if (tournamentType.isRandom() || tournamentType.isRichMan()) {
this.isRandom = tournamentType.isRandom();
@@ -558,18 +577,18 @@ public class NewTournamentDialog extends MageDialog {
if (tournamentType.isRichMan()) {
maxPacks = 36;
}
- if (selected.size() > maxPacks ){
+ if (selected.size() > maxPacks) {
StringBuilder infoString = new StringBuilder("More sets were selected than needed. ");
infoString.append(maxPacks);
infoString.append(" sets will be randomly chosen.");
JOptionPane.showMessageDialog(MageFrame.getDesktop(), infoString, "Information", JOptionPane.INFORMATION_MESSAGE);
Collections.shuffle(selected);
tOptions.getLimitedOptions().getSetCodes().addAll(selected.subList(0, maxPacks));
- }else{
- tOptions.getLimitedOptions().getSetCodes().addAll(selected);
+ } else {
+ tOptions.getLimitedOptions().getSetCodes().addAll(selected);
}
} else {
- for (JComboBox pack: packs) {
+ for (JComboBox pack : packs) {
tOptions.getLimitedOptions().getSetCodes().add(((ExpansionInfo) pack.getSelectedItem()).getCode());
}
}
@@ -588,8 +607,8 @@ public class NewTournamentDialog extends MageDialog {
tOptions.getMatchOptions().setMatchTimeLimit((MatchTimeLimit) this.cbTimeLimit.getSelectedItem());
tOptions.getMatchOptions().setSkillLevel((SkillLevel) this.cbSkillLevel.getSelectedItem());
- tOptions.getMatchOptions().setWinsNeeded((Integer)this.spnNumWins.getValue());
- tOptions.getMatchOptions().setFreeMulligans((Integer)this.spnFreeMulligans.getValue());
+ tOptions.getMatchOptions().setWinsNeeded((Integer) this.spnNumWins.getValue());
+ tOptions.getMatchOptions().setFreeMulligans((Integer) this.spnFreeMulligans.getValue());
tOptions.getMatchOptions().setAttackOption(MultiplayerAttackOption.LEFT);
tOptions.getMatchOptions().setRange(RangeOfInfluence.ALL);
tOptions.getMatchOptions().setRollbackTurnsAllowed(this.chkRollbackTurnsAllowed.isSelected());
@@ -605,11 +624,11 @@ public class NewTournamentDialog extends MageDialog {
roomId,
table.getTableId(),
this.player1Panel.getPlayerName(),
- "Human", 1,
+ PlayerType.HUMAN, 1,
DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()),
tOptions.getPassword())) {
- for (TournamentPlayerPanel player: players) {
- if (!player.getPlayerType().toString().equals("Human")) {
+ for (TournamentPlayerPanel player : players) {
+ if (!player.getPlayerType().getSelectedItem().toString().equals("Human")) {
if (!player.joinTournamentTable(roomId, table.getTableId(), DeckImporterUtil.importDeck(this.player1Panel.getDeckFile()))) {
// error message must be send by sever
SessionHandler.removeTable(roomId, table.getTableId());
@@ -633,8 +652,8 @@ public class NewTournamentDialog extends MageDialog {
}//GEN-LAST:event_btnCancelActionPerformed
private void updateNumSeats() {
- int numPlayers = (Integer)this.spnNumPlayers.getValue();
- int numSeats = (Integer)this.spnNumSeats.getValue();
+ int numPlayers = (Integer) this.spnNumPlayers.getValue();
+ int numSeats = (Integer) this.spnNumSeats.getValue();
if (numSeats > 2) {
TournamentTypeView tournamentType = (TournamentTypeView) cbTournamentType.getSelectedItem();
@@ -652,16 +671,16 @@ public class NewTournamentDialog extends MageDialog {
}
private void spnNumPlayersStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnNumPlayersStateChanged
- int numPlayers = (Integer)this.spnNumPlayers.getValue();
+ int numPlayers = (Integer) this.spnNumPlayers.getValue();
createPlayers(numPlayers - 1);
- int numSeats = (Integer)this.spnNumSeats.getValue();
+ int numSeats = (Integer) this.spnNumSeats.getValue();
if (numSeats > 2 && numPlayers != numSeats) {
updateNumSeats();
}
}//GEN-LAST:event_spnNumPlayersStateChanged
private void spnNumSeatsStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnNumSeatsStateChanged
- int numSeats = (Integer)this.spnNumSeats.getValue();
+ int numSeats = (Integer) this.spnNumSeats.getValue();
if (numSeats > 2) {
this.spnNumPlayers.setEnabled(false);
} else {
@@ -669,11 +688,10 @@ public class NewTournamentDialog extends MageDialog {
}
updateNumSeats();
}//GEN-LAST:event_spnNumSeatsStateChanged
-
private void spnNumWinsnumPlayersChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spnNumWinsnumPlayersChanged
- int numSeats = (Integer)this.spnNumSeats.getValue();
- int numWins = (Integer)this.spnNumSeats.getValue();
+ int numSeats = (Integer) this.spnNumSeats.getValue();
+ int numWins = (Integer) this.spnNumSeats.getValue();
if (numSeats > 2) {
spnNumWins.setValue(1);
}
@@ -699,7 +717,6 @@ public class NewTournamentDialog extends MageDialog {
return "";
}
-
private void cbDraftCubeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbDraftCubeActionPerformed
cubeFromDeckFilename = "";
if (cbDraftCube.getSelectedItem().toString().equals("Cube From Deck")) {
@@ -718,6 +735,7 @@ public class NewTournamentDialog extends MageDialog {
private void cbGameTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbGameTypeActionPerformed
setGameOptions();
}//GEN-LAST:event_cbGameTypeActionPerformed
+
private void setGameOptions() {
GameTypeView gameType = (GameTypeView) cbGameType.getSelectedItem();
// int oldValue = (Integer) this.spnNumPlayers.getValue();
@@ -747,10 +765,10 @@ public class NewTournamentDialog extends MageDialog {
if (tournamentType.isLimited()) {
this.isRandom = tournamentType.isRandom();
- this.isRichMan = tournamentType.isRichMan();
- if (this.isRandom || this.isRichMan){
+ this.isRichMan = tournamentType.isRichMan();
+ if (this.isRandom || this.isRichMan) {
createRandomPacks();
- }else{
+ } else {
createPacks(tournamentType.getNumBoosters());
}
}
@@ -759,8 +777,8 @@ public class NewTournamentDialog extends MageDialog {
private void setNumberOfSwissRoundsMin(int numPlayers) {
// set the number of minimum swiss rounds related to the number of players
- int minRounds = (int) Math.ceil(Math.log(numPlayers + 1) / Math.log(2));
- int newValue = Math.max((Integer)spnNumRounds.getValue(), minRounds);
+ int minRounds = (int) Math.ceil(Math.log(numPlayers + 1) / Math.log(2));
+ int newValue = Math.max((Integer) spnNumRounds.getValue(), minRounds);
this.spnNumRounds.setModel(new SpinnerNumberModel(newValue, minRounds, 10, 1));
this.pack();
this.revalidate();
@@ -793,7 +811,7 @@ public class NewTournamentDialog extends MageDialog {
this.lblPacks.setVisible(false);
this.pnlPacks.setVisible(false);
this.pnlRandomPacks.setVisible(false);
- } else if (tournamentType.isRandom() || tournamentType.isRichMan()){
+ } else if (tournamentType.isRandom() || tournamentType.isRichMan()) {
this.lblDraftCube.setVisible(false);
this.cbDraftCube.setVisible(false);
this.lblPacks.setVisible(true);
@@ -887,14 +905,13 @@ public class NewTournamentDialog extends MageDialog {
private void packActionPerformed(java.awt.event.ActionEvent evt) {
boolean start = false;
int selectedIndex = 0;
- for (JComboBox pack: packs) {
+ for (JComboBox pack : packs) {
if (!start) {
if (evt.getSource().equals(pack)) {
start = true;
selectedIndex = pack.getSelectedIndex();
}
- }
- else {
+ } else {
pack.setSelectedIndex(selectedIndex);
}
}
@@ -909,8 +926,7 @@ public class NewTournamentDialog extends MageDialog {
players.add(playerPanel);
}
- }
- else if (numPlayers < players.size()) {
+ } else if (numPlayers < players.size()) {
while (players.size() != numPlayers) {
players.remove(players.size() - 1);
}
@@ -921,11 +937,9 @@ public class NewTournamentDialog extends MageDialog {
}
-
-
private void drawPlayers() {
this.pnlOtherPlayers.removeAll();
- for (TournamentPlayerPanel panel: players) {
+ for (TournamentPlayerPanel panel : players) {
this.pnlOtherPlayers.add(panel);
panel.getPlayerType().addActionListener(evt -> {
if (!automaticChange) {
@@ -942,14 +956,13 @@ public class NewTournamentDialog extends MageDialog {
boolean start = false;
int selectedIndex = 0;
automaticChange = true;
- for (TournamentPlayerPanel player: players) {
+ for (TournamentPlayerPanel player : players) {
if (!start) {
if (evt.getSource().equals(player.getPlayerType())) {
start = true;
selectedIndex = player.getPlayerType().getSelectedIndex();
}
- }
- else {
+ } else {
player.getPlayerType().setSelectedIndex(selectedIndex);
}
}
@@ -959,58 +972,70 @@ public class NewTournamentDialog extends MageDialog {
/**
* set the tournament settings from java prefs
*/
- private void setTournamentSettingsFromPrefs () {
+ int currentSettingVersion = 0;
+ private void setTournamentSettingsFromPrefs(int version) {
+ currentSettingVersion = version;
+ String versionStr = "";
+ if (currentSettingVersion == 1) {
+ versionStr = "1";
+ btnSavedConfiguration1.requestFocus();
+ } else if (currentSettingVersion == 2) {
+ versionStr = "2";
+ btnSavedConfiguration2.requestFocus();
+ } else {
+ btnSavedConfiguration2.getParent().requestFocus();
+ }
int numPlayers;
- txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NAME, "Tournament"));
- txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PASSWORD, ""));
- int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TIME_LIMIT, "1500"));
- for (MatchTimeLimit mtl :MatchTimeLimit.values()) {
+ txtName.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NAME + versionStr, "Tournament"));
+ txtPassword.setText(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PASSWORD + versionStr, ""));
+ int timeLimit = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TIME_LIMIT + versionStr, "1500"));
+ for (MatchTimeLimit mtl : MatchTimeLimit.values()) {
if (mtl.getTimeLimit() == timeLimit) {
this.cbTimeLimit.setSelectedItem(mtl);
break;
}
}
- String skillLevelDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL, "Casual");
- for (SkillLevel skillLevel :SkillLevel.values()) {
+ String skillLevelDefault = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TABLE_SKILL_LEVEL + versionStr, "Casual");
+ for (SkillLevel skillLevel : SkillLevel.values()) {
if (skillLevel.toString().equals(skillLevelDefault)) {
this.cbSkillLevel.setSelectedItem(skillLevel);
break;
}
}
- int constructionTime = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_CONSTR_TIME, "600")) / 60;
+ int constructionTime = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_CONSTR_TIME + versionStr, "600")) / 60;
if (constructionTime < CONSTRUCTION_TIME_MIN || constructionTime > CONSTRUCTION_TIME_MAX) {
constructionTime = CONSTRUCTION_TIME_MIN;
}
this.spnConstructTime.setValue(constructionTime);
- String tournamentTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TYPE, "Sealed Elimination");
+ String tournamentTypeName = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_TYPE + versionStr, "Sealed Elimination");
for (TournamentTypeView tournamentTypeView : SessionHandler.getTournamentTypes()) {
if (tournamentTypeView.getName().equals(tournamentTypeName)) {
cbTournamentType.setSelectedItem(tournamentTypeView);
break;
}
}
- this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_FREE_MULLIGANS, "0")));
- this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_WINS, "2")));
- this.spnQuitRatio.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_QUIT_RATIO, "100")));
+ this.spnFreeMulligans.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_FREE_MULLIGANS + versionStr, "0")));
+ this.spnNumWins.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_NUMBER_OF_WINS + versionStr, "2")));
+ this.spnQuitRatio.setValue(Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_QUIT_RATIO + versionStr, "100")));
TournamentTypeView tournamentType = (TournamentTypeView) cbTournamentType.getSelectedItem();
activatePanelElements(tournamentType);
if (tournamentType.isLimited()) {
if (!tournamentType.isDraft()) {
- numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_SEALED, "2"));
+ numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_SEALED + versionStr, "2"));
setTournamentOptions(numPlayers);
- loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_SEALED, ""));
+ loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_SEALED + versionStr, ""));
}
if (tournamentType.isDraft()) {
- numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_DRAFT, "4"));
+ numPlayers = Integer.parseInt(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PLAYERS_DRAFT + versionStr, "4"));
setTournamentOptions(numPlayers);
- if (!(tournamentType.isRandom() || tournamentType.isRichMan())){
- loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_DRAFT, ""));
+ if (!(tournamentType.isRandom() || tournamentType.isRichMan())) {
+ loadBoosterPacks(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_PACKS_DRAFT + versionStr, ""));
}
- String draftTiming = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_DRAFT_TIMING, "REGULAR");
+ String draftTiming = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_DRAFT_TIMING + versionStr, "REGULAR");
for (TimingOption timingOption : DraftOptions.TimingOption.values()) {
if (timingOption.toString().equals(draftTiming)) {
cbDraftTiming.setSelectedItem(draftTiming);
@@ -1019,22 +1044,22 @@ public class NewTournamentDialog extends MageDialog {
}
}
}
- this.cbAllowSpectators.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_SPECTATORS, "Yes").equals("Yes"));
- this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_ROLLBACKS, "Yes").equals("Yes"));
- this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_RATED, "No").equals("Yes"));
+ this.cbAllowSpectators.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_SPECTATORS + versionStr, "Yes").equals("Yes"));
+ this.chkRollbackTurnsAllowed.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_ALLOW_ROLLBACKS + versionStr, "Yes").equals("Yes"));
+ this.chkRated.setSelected(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_TOURNAMENT_RATED + versionStr, "No").equals("Yes"));
}
private void loadBoosterPacks(String packString) {
if (!packString.isEmpty()) {
String[] packsArray = packString.substring(1, packString.length() - 1).split(",");
int packNumber = 0;
- for (String pack : packsArray ){
+ for (String pack : packsArray) {
packNumber++;
if (this.packs.size() >= packNumber - 1) {
- JComboBox comboBox = this.packs.get(packNumber-1);
+ JComboBox comboBox = this.packs.get(packNumber - 1);
ComboBoxModel model = comboBox.getModel();
int size = model.getSize();
- for(int i=0;i {
@Override
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
- SessionHandler.getTable(roomId, tableId).ifPresent(tableView -> {
-
- this.publish(tableView);
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- });
+ SessionHandler.getTable(roomId, tableId).ifPresent(this::publish);
+ TimeUnit.SECONDS.sleep(1);
}
return null;
}
diff --git a/Mage.Client/src/main/java/mage/client/draft/DraftPane.java b/Mage.Client/src/main/java/mage/client/draft/DraftPane.java
index 2805cac5a84..d471e030652 100644
--- a/Mage.Client/src/main/java/mage/client/draft/DraftPane.java
+++ b/Mage.Client/src/main/java/mage/client/draft/DraftPane.java
@@ -99,8 +99,8 @@ public class DraftPane extends MagePane {
jScrollPane1.setViewportView(draftPanel1);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 868, Short.MAX_VALUE)
@@ -109,14 +109,12 @@ public class DraftPane extends MagePane {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 582, Short.MAX_VALUE)
);
-
- pack();
}// //GEN-END:initComponents
private void initComponents(Component container) {
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE)
@@ -125,8 +123,6 @@ public class DraftPane extends MagePane {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 626, Short.MAX_VALUE)
);
-
- pack();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java
index 1b7167bf287..2d3d2b1e553 100644
--- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java
@@ -33,15 +33,6 @@
*/
package mage.client.game;
-import java.awt.*;
-import java.awt.event.ComponentAdapter;
-import java.awt.event.ComponentEvent;
-import java.util.*;
-import java.util.List;
-import java.util.Map.Entry;
-import javax.swing.*;
-import javax.swing.border.Border;
-import javax.swing.border.EmptyBorder;
import mage.cards.MagePermanent;
import mage.client.cards.BigCard;
import mage.client.cards.Permanent;
@@ -51,11 +42,19 @@ import mage.client.util.GUISizeHelper;
import mage.client.util.audio.AudioManager;
import mage.client.util.layout.CardLayoutStrategy;
import mage.client.util.layout.impl.OldCardLayoutStrategy;
-import mage.constants.CardType;
-import mage.utils.CardUtil;
import mage.view.CounterView;
import mage.view.PermanentView;
+import javax.swing.*;
+import javax.swing.border.Border;
+import javax.swing.border.EmptyBorder;
+import java.awt.*;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.util.*;
+import java.util.List;
+import java.util.Map.Entry;
+
/**
*
* @author BetaSteward_at_googlemail.com
@@ -155,7 +154,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane {
changed = true;
} else {
if (!changed) {
- changed = CardUtil.isCreature(oldMagePermanent.getOriginalPermanent()) != CardUtil.isCreature(permanent);
+ changed = oldMagePermanent.getOriginalPermanent().isCreature() != permanent.isCreature();
if (!changed) {
int s1 = permanent.getAttachments() == null ? 0 : permanent.getAttachments().size();
int s2 = oldMagePermanent.getLinks().size();
@@ -279,9 +278,9 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane {
}*/
}
- if (permanent.getCardTypes().contains(CardType.ARTIFACT)) {
+ if (permanent.isArtifact()) {
addedArtifact = true;
- } else if (permanent.getCardTypes().contains(CardType.CREATURE)) {
+ } else if (permanent.isCreature()) {
addedCreature = true;
} else {
addedPermanent = true;
@@ -305,7 +304,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane {
});
t.start();
}
- if (((MagePermanent) comp).getOriginal().getCardTypes().contains(CardType.CREATURE)) {
+ if (((MagePermanent) comp).getOriginal().isCreature()) {
removedCreature = true;
}
}
diff --git a/Mage.Client/src/main/java/mage/client/game/GamePane.java b/Mage.Client/src/main/java/mage/client/game/GamePane.java
index 6e100198521..5c30be94821 100644
--- a/Mage.Client/src/main/java/mage/client/game/GamePane.java
+++ b/Mage.Client/src/main/java/mage/client/game/GamePane.java
@@ -35,7 +35,8 @@ package mage.client.game;
import java.awt.AWTEvent;
import java.util.UUID;
-import javax.swing.SwingUtilities;
+import javax.swing.*;
+
import mage.client.MagePane;
/**
@@ -48,10 +49,9 @@ public class GamePane extends MagePane {
* Creates new form GamePane
*/
public GamePane() {
- this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
initComponents();
SwingUtilities.invokeLater(() -> {
- gamePanel.setJLayeredPane(getLayeredPane());
+ gamePanel.setJLayeredPane(this);
gamePanel.installComponents();
});
@@ -96,12 +96,13 @@ public class GamePane extends MagePane {
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
+ jScrollPane1.setBorder(BorderFactory.createEmptyBorder());
gamePanel = new mage.client.game.GamePanel();
jScrollPane1.setViewportView(gamePanel);
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 600, Short.MAX_VALUE)
@@ -113,7 +114,6 @@ public class GamePane extends MagePane {
.addGap(0, 400, Short.MAX_VALUE)
);
- pack();
}
public UUID getGameId() {
diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
index d68e842327e..2cb9a387652 100644
--- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java
+++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java
@@ -31,6 +31,7 @@ import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
+import static java.awt.Component.LEFT_ALIGNMENT;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
@@ -59,6 +60,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
@@ -80,7 +82,6 @@ import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;
-
import mage.cards.Card;
import mage.cards.action.ActionCallback;
import mage.choices.Choice;
@@ -100,9 +101,7 @@ import mage.client.dialog.PickChoiceDialog;
import mage.client.dialog.PickNumberDialog;
import mage.client.dialog.PickPileDialog;
import mage.client.dialog.PreferencesDialog;
-
import static mage.client.dialog.PreferencesDialog.*;
-
import mage.client.dialog.ShowCardsDialog;
import mage.client.game.FeedbackPanel.FeedbackMode;
import mage.client.plugins.adapters.MageActionCallback;
@@ -119,13 +118,11 @@ import mage.constants.Constants;
import mage.constants.EnlargeMode;
import mage.constants.PhaseStep;
import mage.constants.PlayerAction;
-
import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_ABILITY_FIRST;
import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_ABILITY_LAST;
import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_NAME_FIRST;
import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_NAME_LAST;
import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_RESET_ALL;
-
import mage.constants.Zone;
import mage.game.events.PlayerQueryEvent;
import mage.view.AbilityPickerView;
@@ -534,8 +531,8 @@ public final class GamePanel extends javax.swing.JPanel {
this.pnlReplay.setVisible(false);
this.gameChatPanel.clear();
- SessionHandler.getGameChatId(gameId).ifPresent(uuid ->
- this.gameChatPanel.connect(uuid));
+ SessionHandler.getGameChatId(gameId).ifPresent(uuid
+ -> this.gameChatPanel.connect(uuid));
if (!SessionHandler.watchGame(gameId)) {
removeGame();
}
@@ -816,13 +813,15 @@ public final class GamePanel extends javax.swing.JPanel {
cardsView.put(player.getTopCard().getId(), player.getTopCard());
handleGameInfoWindow(revealed, ShowType.REVEAL_TOP_LIBRARY, player.getName() + "'s top library card", cardsView);
}
- } else {
+ } else if (!players.isEmpty()) {
logger.warn("Couldn't find player.");
logger.warn(" uuid:" + player.getPlayerId());
logger.warn(" players:");
for (PlayAreaPanel p : players.values()) {
logger.warn(String.valueOf(p));
}
+ } else {
+ // can happen at the game start before player list is initiated
}
}
if (!menuNameSet) {
@@ -1776,24 +1775,24 @@ public final class GamePanel extends javax.swing.JPanel {
pnlReplay.setLayout(gl_pnlReplay);
gl_pnlReplay.setHorizontalGroup(
gl_pnlReplay.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(gl_pnlReplay.createSequentialGroup()
- .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(btnStopReplay, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnNextPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnSkipForward, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(gl_pnlReplay.createSequentialGroup()
+ .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(btnStopReplay, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnNextPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(btnSkipForward, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE))
);
gl_pnlReplay.setVerticalGroup(
gl_pnlReplay.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(btnSkipForward, 0, 0, Short.MAX_VALUE)
- .addComponent(btnNextPlay, 0, 0, Short.MAX_VALUE)
- .addComponent(btnStopReplay, 0, 0, Short.MAX_VALUE)
- .addComponent(btnPlay, 0, 0, Short.MAX_VALUE)
- .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 31, Short.MAX_VALUE)
+ .addComponent(btnSkipForward, 0, 0, Short.MAX_VALUE)
+ .addComponent(btnNextPlay, 0, 0, Short.MAX_VALUE)
+ .addComponent(btnStopReplay, 0, 0, Short.MAX_VALUE)
+ .addComponent(btnPlay, 0, 0, Short.MAX_VALUE)
+ .addComponent(btnPreviousPlay, javax.swing.GroupLayout.PREFERRED_SIZE, 31, Short.MAX_VALUE)
);
// Game info panel (buttons on the right panel)
@@ -1867,8 +1866,8 @@ public final class GamePanel extends javax.swing.JPanel {
}
};
String[] phases = {"Untap", "Upkeep", "Draw", "Main1",
- "Combat_Start", "Combat_Attack", "Combat_Block", "Combat_Damage", "Combat_End",
- "Main2", "Cleanup", "Next_Turn"};
+ "Combat_Start", "Combat_Attack", "Combat_Block", "Combat_Damage", "Combat_End",
+ "Main2", "Cleanup", "Next_Turn"};
for (String name : phases) {
createPhaseButton(name, phasesMouseAdapter);
}
@@ -1905,46 +1904,46 @@ public final class GamePanel extends javax.swing.JPanel {
javax.swing.GroupLayout gl_helperHandButtonsStackArea = new javax.swing.GroupLayout(pnlHelperHandButtonsStackArea);
gl_helperHandButtonsStackArea.setHorizontalGroup(
gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
- // .addGap(0)
- .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
- .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
- .addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- )
- .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
- .addComponent(pnlShortCuts, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
- .addComponent(stackObjects, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
- )
+ .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
+ // .addGap(0)
+ .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
+ .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
+ .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
+ .addComponent(helper, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(handContainer, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
)
- .addGap(0)
- //.addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
- .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
- .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- )))
+ .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
+ .addComponent(pnlShortCuts, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
+ .addComponent(stackObjects, 410, GroupLayout.PREFERRED_SIZE, Short.MAX_VALUE)
+ )
+ )
+ .addGap(0)
+ //.addComponent(jPhases, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
+ .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
+ .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ )))
);
gl_helperHandButtonsStackArea.setVerticalGroup(
gl_helperHandButtonsStackArea.createParallelGroup(Alignment.TRAILING)
- .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
- .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
- .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
- .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
+ .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
+ .addComponent(pnlBattlefield, GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
+ .addComponent(phasesContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ )
+ //.addPreferredGap(ComponentPlacement.RELATED)
+ .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
+ .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
+ .addGap(2)
+ .addComponent(pnlShortCuts, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ .addComponent(stackObjects, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
)
- //.addPreferredGap(ComponentPlacement.RELATED)
- .addGroup(gl_helperHandButtonsStackArea.createParallelGroup(Alignment.LEADING)
- .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
- .addGap(2)
- .addComponent(pnlShortCuts, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(stackObjects, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- )
- .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
- .addComponent(helper, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addComponent(handContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- )
+ .addGroup(gl_helperHandButtonsStackArea.createSequentialGroup()
+ .addComponent(helper, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ .addComponent(handContainer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
)
)
+ )
);
pnlHelperHandButtonsStackArea.setLayout(gl_helperHandButtonsStackArea);
@@ -1977,11 +1976,11 @@ public final class GamePanel extends javax.swing.JPanel {
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 1078, Short.MAX_VALUE)
+ .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 1078, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 798, Short.MAX_VALUE)
+ .addComponent(jSplitPane0, javax.swing.GroupLayout.DEFAULT_SIZE, 798, Short.MAX_VALUE)
);
}
@@ -2188,7 +2187,7 @@ public final class GamePanel extends javax.swing.JPanel {
public void installComponents() {
jLayeredPane.setOpaque(false);
- jLayeredPane.add(abilityPicker);
+ jLayeredPane.add(abilityPicker, JLayeredPane.MODAL_LAYER);
jLayeredPane.add(DialogManager.getManager(gameId), JLayeredPane.MODAL_LAYER, 0);
abilityPicker.setVisible(false);
}
@@ -2433,7 +2432,7 @@ class ReplayTask extends SwingWorker> {
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
SessionHandler.nextPlay(gameId);
- Thread.sleep(1000);
+ TimeUnit.SECONDS.sleep(1);
}
return null;
}
diff --git a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java
index 0db517ded03..63866222351 100644
--- a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java
+++ b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java
@@ -27,11 +27,6 @@
*/
package mage.client.remote;
-import java.awt.event.KeyEvent;
-import java.util.List;
-import java.util.UUID;
-import javax.swing.JOptionPane;
-import javax.swing.SwingUtilities;
import mage.cards.decks.Deck;
import mage.client.MageFrame;
import mage.client.SessionHandler;
@@ -49,19 +44,15 @@ import mage.client.util.object.SaveObjectUtil;
import mage.interfaces.callback.CallbackClient;
import mage.interfaces.callback.ClientCallback;
import mage.utils.CompressUtil;
-import mage.view.AbilityPickerView;
-import mage.view.ChatMessage;
+import mage.view.*;
import mage.view.ChatMessage.MessageType;
-import mage.view.DeckView;
-import mage.view.DraftClientMessage;
-import mage.view.DraftView;
-import mage.view.GameClientMessage;
-import mage.view.GameEndView;
-import mage.view.GameView;
-import mage.view.TableClientMessage;
-import mage.view.UserRequestMessage;
import org.apache.log4j.Logger;
+import javax.swing.*;
+import java.awt.event.KeyEvent;
+import java.util.List;
+import java.util.UUID;
+
/**
*
* @author BetaSteward_at_googlemail.com
@@ -79,38 +70,38 @@ public class CallbackClientImpl implements CallbackClient {
@Override
public synchronized void processCallback(final ClientCallback callback) {
- SaveObjectUtil.saveObject(callback.getData(), callback.getMethod());
+ SaveObjectUtil.saveObject(callback.getData(), callback.getMethod().toString());
callback.setData(CompressUtil.decompress(callback.getData()));
SwingUtilities.invokeLater(() -> {
try {
logger.debug(callback.getMessageId() + " -- " + callback.getMethod());
switch (callback.getMethod()) {
- case "startGame": {
+ case START_GAME: {
TableClientMessage message = (TableClientMessage) callback.getData();
GameManager.instance.setCurrentPlayerUUID(message.getPlayerId());
gameStarted(message.getGameId(), message.getPlayerId());
break;
}
- case "startTournament": {
+ case START_TOURNAMENT: {
TableClientMessage message = (TableClientMessage) callback.getData();
tournamentStarted(message.getGameId(), message.getPlayerId());
break;
}
- case "startDraft": {
+ case START_DRAFT: {
TableClientMessage message = (TableClientMessage) callback.getData();
draftStarted(message.getGameId(), message.getPlayerId());
break;
}
- case "replayGame":
+ case REPLAY_GAME:
replayGame(callback.getObjectId());
break;
- case "showTournament":
+ case SHOW_TOURNAMENT:
showTournament(callback.getObjectId());
break;
- case "watchGame":
+ case WATCHGAME:
watchGame(callback.getObjectId());
break;
- case "chatMessage": {
+ case CHATMESSAGE: {
ChatMessage message = (ChatMessage) callback.getData();
// Drop messages from ignored users
@@ -154,7 +145,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "serverMessage":
+ case SERVER_MESSAGE:
if (callback.getData() != null) {
ChatMessage message = (ChatMessage) callback.getData();
if (message.getColor() == ChatMessage.MessageColor.RED) {
@@ -164,50 +155,50 @@ public class CallbackClientImpl implements CallbackClient {
}
}
break;
- case "joinedTable": {
+ case JOINED_TABLE: {
TableClientMessage message = (TableClientMessage) callback.getData();
joinedTable(message.getRoomId(), message.getTableId(), message.getFlag());
break;
}
- case "replayInit": {
+ case REPLAY_INIT: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.init((GameView) callback.getData());
}
break;
}
- case "replayDone": {
+ case REPLAY_DONE: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.endMessage((String) callback.getData(), callback.getMessageId());
}
break;
}
- case "replayUpdate": {
+ case REPLAY_UPDATE: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.updateGame((GameView) callback.getData());
}
break;
}
- case "gameInit": {
+ case GAME_INIT: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.init((GameView) callback.getData());
}
break;
}
- case "gameOver": {
+ case GAME_OVER: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.endMessage((String) callback.getData(), callback.getMessageId());
}
break;
}
- case "gameError":
+ case GAME_ERROR:
frame.showErrorDialog("Game Error", (String) callback.getData());
break;
- case "gameAsk": {
+ case GAME_ASK: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -215,7 +206,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gameTarget": // e.g. Pick triggered ability
+ case GAME_TARGET: // e.g. Pick triggered ability
{
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
@@ -225,7 +216,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gameSelect": {
+ case GAME_SELECT: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -233,14 +224,14 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gameChooseAbility": {
+ case GAME_CHOOSE_ABILITY: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.pickAbility((AbilityPickerView) callback.getData());
}
break;
}
- case "gameChoosePile": {
+ case GAME_CHOOSE_PILE: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -248,7 +239,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gameChooseChoice": {
+ case GAME_CHOOSE_CHOICE: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
@@ -257,7 +248,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gamePlayMana": {
+ case GAME_PLAY_MANA: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -265,7 +256,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gamePlayXMana": {
+ case GAME_PLAY_XMANA: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -273,7 +264,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gameSelectAmount": {
+ case GAME_GET_AMOUNT: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -281,23 +272,23 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "gameUpdate": {
+ case GAME_UPDATE: {
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
panel.updateGame((GameView) callback.getData());
}
break;
}
- case "endGameInfo":
+ case END_GAME_INFO:
MageFrame.getInstance().showGameEndDialog((GameEndView) callback.getData());
break;
- case "showUserMessage":
+ case SHOW_USERMESSAGE:
List messageData = (List) callback.getData();
if (messageData.size() == 2) {
JOptionPane.showMessageDialog(null, messageData.get(1), messageData.get(0), JOptionPane.WARNING_MESSAGE);
}
break;
- case "gameInform":
+ case GAME_INFORM:
if (callback.getMessageId() > gameInformMessageId) {
{
GameClientMessage message = (GameClientMessage) callback.getData();
@@ -313,7 +304,7 @@ public class CallbackClientImpl implements CallbackClient {
}
gameInformMessageId = messageId;
break;
- case "gameInformPersonal": {
+ case GAME_INFORM_PERSONAL: {
GameClientMessage message = (GameClientMessage) callback.getData();
GamePanel panel = MageFrame.getGame(callback.getObjectId());
if (panel != null) {
@@ -322,7 +313,7 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "sideboard": {
+ case SIDEBOARD: {
TableClientMessage message = (TableClientMessage) callback.getData();
DeckView deckView = message.getDeck();
Deck deck = DeckUtil.construct(deckView);
@@ -333,17 +324,17 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "construct": {
+ case CONSTRUCT: {
TableClientMessage message = (TableClientMessage) callback.getData();
DeckView deckView = message.getDeck();
Deck deck = DeckUtil.construct(deckView);
construct(deck, message.getTableId(), message.getTime());
break;
}
- case "draftOver":
+ case DRAFT_OVER:
MageFrame.removeDraft(callback.getObjectId());
break;
- case "draftPick": {
+ case DRAFT_PICK: {
DraftClientMessage message = (DraftClientMessage) callback.getData();
DraftPanel panel = MageFrame.getDraft(callback.getObjectId());
if (panel != null) {
@@ -351,14 +342,14 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "draftUpdate": {
+ case DRAFT_UPDATE: {
DraftPanel panel = MageFrame.getDraft(callback.getObjectId());
if (panel != null) {
panel.updateDraft((DraftView) callback.getData());
}
break;
}
- case "draftInform": // if (callback.getMessageId() > messageId) {
+ case DRAFT_INFORM: // if (callback.getMessageId() > messageId) {
{
DraftClientMessage message = (DraftClientMessage) callback.getData();
}
@@ -366,7 +357,7 @@ public class CallbackClientImpl implements CallbackClient {
// logger.warn("message out of sequence - ignoring");
// }
break;
- case "draftInit": {
+ case DRAFT_INIT: {
DraftClientMessage message = (DraftClientMessage) callback.getData();
DraftPanel panel = MageFrame.getDraft(callback.getObjectId());
if (panel != null) {
@@ -374,9 +365,9 @@ public class CallbackClientImpl implements CallbackClient {
}
break;
}
- case "tournamentInit":
+ case TOURNAMENT_INIT:
break;
- case "userRequestDialog":
+ case USER_REQUEST_DIALOG:
frame.showUserRequestDialog((UserRequestMessage) callback.getData());
break;
}
diff --git a/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java
index 902aab84dd9..b0d64b6882c 100644
--- a/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java
+++ b/Mage.Client/src/main/java/mage/client/table/TablePlayerPanel.java
@@ -34,17 +34,18 @@
package mage.client.table;
-import java.io.IOException;
-import java.util.UUID;
-import javax.swing.DefaultComboBoxModel;
import mage.cards.decks.importer.DeckImporterUtil;
import mage.client.SessionHandler;
import mage.client.util.Config;
import mage.client.util.Event;
import mage.client.util.Listener;
+import mage.players.PlayerType;
+
+import javax.swing.*;
+import java.io.IOException;
+import java.util.UUID;
/**
- *
* @author BetaSteward_at_googlemail.com
*/
public class TablePlayerPanel extends javax.swing.JPanel {
@@ -52,38 +53,39 @@ public class TablePlayerPanel extends javax.swing.JPanel {
protected final PlayerTypeEventSource playerTypeEventSource = new PlayerTypeEventSource();
- /** Creates new form TablePlayerPanel */
+ /**
+ * Creates new form TablePlayerPanel
+ */
public TablePlayerPanel() {
initComponents();
this.newPlayerPanel.setVisible(false);
}
- public void init(int playerNum, String playerType) {
+ public void init(int playerNum, PlayerType playerType) {
cbPlayerType.setModel(new DefaultComboBoxModel(SessionHandler.getPlayerTypes()));
this.lblPlayerNum.setText("Player " + playerNum);
if (Config.defaultOtherPlayerIndex != null) {
if (Integer.valueOf(Config.defaultOtherPlayerIndex) >= cbPlayerType.getItemCount()) {
cbPlayerType.setSelectedIndex(cbPlayerType.getItemCount() - 1);
- }
- else {
- Integer index = Integer.parseInt(Config.defaultOtherPlayerIndex);
+ } else {
+ Integer index = Integer.parseInt(Config.defaultOtherPlayerIndex);
cbPlayerType.setSelectedIndex(index);
}
}
if (playerType != null) {
this.cbPlayerType.setSelectedItem(playerType);
- }
+ }
}
public boolean joinTable(UUID roomId, UUID tableId) throws IOException, ClassNotFoundException {
if (!this.cbPlayerType.getSelectedItem().equals("Human")) {
- return SessionHandler.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), (String)this.cbPlayerType.getSelectedItem(), this.newPlayerPanel.getLevel(), DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()),"");
- }
+ return SessionHandler.joinTable(roomId, tableId, this.newPlayerPanel.getPlayerName(), (PlayerType) this.cbPlayerType.getSelectedItem(), this.newPlayerPanel.getLevel(), DeckImporterUtil.importDeck(this.newPlayerPanel.getDeckFile()), "");
+ }
return true;
}
- public String getPlayerType() {
- return (String) this.cbPlayerType.getSelectedItem();
+ public PlayerType getPlayerType() {
+ return PlayerType.getByDescription(this.cbPlayerType.getSelectedItem().toString());
}
public void addPlayerTypeEventListener(Listener listener) {
@@ -95,7 +97,8 @@ public class TablePlayerPanel extends javax.swing.JPanel {
}
- /** This method is called from within the constructor to
+ /**
+ * This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
@@ -119,38 +122,37 @@ public class TablePlayerPanel extends javax.swing.JPanel {
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblPlayerNum)
- .addGroup(layout.createSequentialGroup()
- .addComponent(lbPlayerType)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE))
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(lblPlayerNum)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(lbPlayerType)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 318, Short.MAX_VALUE))
);
layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addComponent(lblPlayerNum)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(lbPlayerType)))
- .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE))
- .addContainerGap())
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(lblPlayerNum)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(cbPlayerType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(lbPlayerType)))
+ .addComponent(newPlayerPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 43, Short.MAX_VALUE))
+ .addContainerGap())
);
}// //GEN-END:initComponents
private void cbPlayerTypeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbPlayerTypeActionPerformed
- if (!this.cbPlayerType.getSelectedItem().equals("Human")) {
+ if (getPlayerType() != PlayerType.HUMAN) {
this.newPlayerPanel.setVisible(true);
- }
- else {
+ } else {
this.newPlayerPanel.setVisible(false);
}
this.revalidate();
diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPane.java b/Mage.Client/src/main/java/mage/client/table/TablesPane.java
index 30600ae3c76..4c6fe75747c 100644
--- a/Mage.Client/src/main/java/mage/client/table/TablesPane.java
+++ b/Mage.Client/src/main/java/mage/client/table/TablesPane.java
@@ -99,8 +99,8 @@ public class TablesPane extends MagePane {
tablesPanel = new mage.client.table.TablesPanel();
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tablesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE)
@@ -110,12 +110,11 @@ public class TablesPane extends MagePane {
.addComponent(tablesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 471, Short.MAX_VALUE)
);
- pack();
}// //GEN-END:initComponents
private void initComponents(JComponent container) {
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 541, Short.MAX_VALUE)
@@ -124,7 +123,6 @@ public class TablesPane extends MagePane {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(container, javax.swing.GroupLayout.DEFAULT_SIZE, 471, Short.MAX_VALUE)
);
- pack();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
index 5a6be71f1a9..73ca9f0caed 100644
--- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
+++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java
@@ -33,69 +33,21 @@
*/
package mage.client.table;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.HeadlessException;
-import java.awt.Image;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.event.ActionEvent;
-import java.beans.PropertyVetoException;
-import java.io.File;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
-import javax.swing.JComponent;
-import javax.swing.JDesktopPane;
-import javax.swing.JInternalFrame;
-import javax.swing.JLayeredPane;
-import javax.swing.JOptionPane;
-import javax.swing.JPopupMenu;
-import javax.swing.JToggleButton;
-import javax.swing.RowFilter;
-import javax.swing.SwingWorker;
-import javax.swing.table.AbstractTableModel;
import mage.cards.decks.importer.DeckImporterUtil;
import mage.client.MageFrame;
import mage.client.SessionHandler;
import mage.client.chat.ChatPanelBasic;
import mage.client.components.MageComponents;
-import mage.client.dialog.JoinTableDialog;
-import mage.client.dialog.NewTableDialog;
-import mage.client.dialog.NewTournamentDialog;
-import mage.client.dialog.PreferencesDialog;
-import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_ORDER;
-import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_WIDTH;
-import mage.client.dialog.TableWaitingDialog;
-import static mage.client.table.TablesPanel.PASSWORDED;
+import mage.client.dialog.*;
import mage.client.util.ButtonColumn;
import mage.client.util.GUISizeHelper;
import mage.client.util.IgnoreList;
import mage.client.util.MageTableRowSorter;
import mage.client.util.gui.GuiDisplayUtil;
import mage.client.util.gui.TableUtil;
-import mage.constants.MatchTimeLimit;
-import mage.constants.MultiplayerAttackOption;
-import mage.constants.PlayerAction;
-import mage.constants.RangeOfInfluence;
-import mage.constants.SkillLevel;
+import mage.constants.*;
import mage.game.match.MatchOptions;
+import mage.players.PlayerType;
import mage.remote.MageRemoteException;
import mage.view.MatchView;
import mage.view.RoomUsersView;
@@ -103,6 +55,25 @@ import mage.view.TableView;
import mage.view.UserRequestMessage;
import org.apache.log4j.Logger;
+import javax.swing.*;
+import javax.swing.table.AbstractTableModel;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.beans.PropertyVetoException;
+import java.io.File;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.List;
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_ORDER;
+import static mage.client.dialog.PreferencesDialog.KEY_TABLES_COLUMNS_WIDTH;
+import static mage.client.table.TablesPanel.PASSWORDED;
+
/**
*
* @author BetaSteward_at_googlemail.com
@@ -216,7 +187,7 @@ public class TablesPanel extends javax.swing.JPanel {
if (PASSWORDED.equals(pwdColumn)) {
joinTableDialog.showDialog(roomId, tableId, true, deckType.startsWith("Limited"));
} else {
- SessionHandler.joinTournamentTable(roomId, tableId, SessionHandler.getUserName(), "Human", 1, null, "");
+ SessionHandler.joinTournamentTable(roomId, tableId, SessionHandler.getUserName(), PlayerType.HUMAN, 1, null, "");
}
} else {
joinTableDialog.showDialog(roomId, tableId, true, deckType.startsWith("Limited"));
@@ -1188,8 +1159,8 @@ public class TablesPanel extends javax.swing.JPanel {
}
MatchOptions options = new MatchOptions("1", "Two Player Duel", false, 2);
- options.getPlayerTypes().add("Human");
- options.getPlayerTypes().add("Computer - mad");
+ options.getPlayerTypes().add(PlayerType.HUMAN);
+ options.getPlayerTypes().add(PlayerType.COMPUTER_MAD);
options.setDeckType("Limited");
options.setAttackOption(MultiplayerAttackOption.LEFT);
options.setRange(RangeOfInfluence.ALL);
@@ -1203,8 +1174,8 @@ public class TablesPanel extends javax.swing.JPanel {
options.setBannedUsers(IgnoreList.ignoreList(serverAddress));
table = SessionHandler.createTable(roomId, options);
- SessionHandler.joinTable(roomId, table.getTableId(), "Human", "Human", 1, DeckImporterUtil.importDeck("test.dck"), "");
- SessionHandler.joinTable(roomId, table.getTableId(), "Computer", "Computer - mad", 5, DeckImporterUtil.importDeck("test.dck"), "");
+ SessionHandler.joinTable(roomId, table.getTableId(), "Human", PlayerType.HUMAN, 1, DeckImporterUtil.importDeck("test.dck"), "");
+ SessionHandler.joinTable(roomId, table.getTableId(), "Computer", PlayerType.COMPUTER_MAD, 5, DeckImporterUtil.importDeck("test.dck"), "");
SessionHandler.startMatch(roomId, table.getTableId());
} catch (HeadlessException ex) {
handleError(ex);
@@ -1450,7 +1421,7 @@ class UpdateTablesTask extends SwingWorker> {
if (!tables.isEmpty()) {
this.publish(tables);
}
- Thread.sleep(3000);
+ TimeUnit.SECONDS.sleep(3);
}
return null;
}
@@ -1494,7 +1465,7 @@ class UpdatePlayersTask extends SwingWorker> {
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
this.publish(SessionHandler.getRoomUsers(roomId));
- Thread.sleep(3000);
+ TimeUnit.SECONDS.sleep(3);
}
return null;
}
@@ -1636,7 +1607,7 @@ class UpdateMatchesTask extends SwingWorker> {
if (!matches.isEmpty()) {
this.publish(matches);
}
- Thread.sleep(10000);
+ TimeUnit.SECONDS.sleep(10);
}
return null;
}
diff --git a/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java
index 91796275a6a..9a6a65d89af 100644
--- a/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java
+++ b/Mage.Client/src/main/java/mage/client/table/TournamentPlayerPanel.java
@@ -36,6 +36,7 @@ package mage.client.table;
import mage.cards.decks.DeckCardLists;
import mage.client.SessionHandler;
+import mage.players.PlayerType;
import javax.swing.*;
import java.util.UUID;
@@ -68,8 +69,8 @@ public class TournamentPlayerPanel extends javax.swing.JPanel {
roomId,
tableId,
this.txtPlayerName.getText(),
- (String)this.cbPlayerType.getSelectedItem(),
- (Integer)spnLevel.getValue(),
+ (PlayerType) this.cbPlayerType.getSelectedItem(),
+ (Integer) spnLevel.getValue(),
deckCardLists,
"");
}
diff --git a/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java b/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java
index fdba69bc2fd..31dd4e681ed 100644
--- a/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java
+++ b/Mage.Client/src/main/java/mage/client/tournament/TournamentPane.java
@@ -83,8 +83,8 @@ public class TournamentPane extends MagePane {
tournamentPanel = new mage.client.tournament.TournamentPanel();
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tournamentPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 758, Short.MAX_VALUE)
@@ -94,7 +94,6 @@ public class TournamentPane extends MagePane {
.addComponent(tournamentPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE)
);
- pack();
}// //GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
diff --git a/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java b/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java
index 27a93236c37..12367d4384c 100644
--- a/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java
+++ b/Mage.Client/src/main/java/mage/client/tournament/TournamentPanel.java
@@ -44,13 +44,12 @@ import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.SwingWorker;
import javax.swing.table.AbstractTableModel;
-
-import mage.cards.o.Opt;
import mage.client.MageFrame;
import mage.client.SessionHandler;
import mage.client.chat.ChatPanelBasic;
@@ -730,7 +729,7 @@ class UpdateTournamentTask extends SwingWorker {
protected Void doInBackground() throws Exception {
while (!isCancelled()) {
this.publish(SessionHandler.getTournament(tournamentId));
- Thread.sleep(2000);
+ TimeUnit.SECONDS.sleep(2);
}
return null;
}
diff --git a/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java b/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java
index d77d81ef09d..3ce0b81d7ec 100644
--- a/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java
+++ b/Mage.Client/src/main/java/mage/client/util/audio/MusicPlayer.java
@@ -1,7 +1,8 @@
package mage.client.util.audio;
-import java.io.File;
import java.awt.List;
+import java.io.File;
+import java.util.concurrent.TimeUnit;
import javax.sound.sampled.*;
import mage.client.constants.Constants;
import mage.client.dialog.PreferencesDialog;
@@ -75,7 +76,7 @@ public class MusicPlayer {
player.breaked_out = true;
player.breaked = true;
try {
- Thread.sleep(100);
+ TimeUnit.MILLISECONDS.sleep(100);
} catch (Exception e) {
log.error("Thread error: " + e);
}
@@ -119,7 +120,7 @@ public class MusicPlayer {
public void run() {
try {
- Thread.sleep(100);
+ TimeUnit.MILLISECONDS.sleep(100);
} catch (Exception e) {
}
while (!stopped) {
@@ -130,7 +131,7 @@ public class MusicPlayer {
PlayThread.start();
while (!(breaked || breaked_out)) {
try {
- Thread.sleep(10);
+ TimeUnit.MILLISECONDS.sleep(10);
} catch (Exception e) {
log.error("Thread error: " + e);
}
diff --git a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java
index 97e2c45741c..83b586d04db 100644
--- a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java
+++ b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java
@@ -3,6 +3,7 @@ package mage.client.util.gui;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
+import java.util.concurrent.TimeUnit;
/**
* Utility class for creating BufferedImage object from Image instance.
@@ -65,7 +66,7 @@ public class BufferedImageBuilder {
});
while (!imageLoadStatus.widthDone && !imageLoadStatus.heightDone) {
try {
- Thread.sleep(300);
+ TimeUnit.MILLISECONDS.sleep(300);
} catch (InterruptedException e) {
}
@@ -73,8 +74,9 @@ public class BufferedImageBuilder {
}
static class ImageLoadStatus {
+
public boolean widthDone = false;
public boolean heightDone = false;
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java
index 4b37032e4c8..310613284d8 100644
--- a/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java
+++ b/Mage.Client/src/main/java/mage/client/util/gui/GuiDisplayUtil.java
@@ -1,24 +1,8 @@
package mage.client.util.gui;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Font;
-import java.awt.GraphicsConfiguration;
-import java.awt.Insets;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.util.ArrayList;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.SwingConstants;
import mage.client.MageFrame;
import mage.client.util.GUISizeHelper;
-import mage.constants.CardType;
-import mage.constants.MageObjectType;
-import mage.constants.Rarity;
-import mage.constants.Zone;
-import mage.utils.CardUtil;
+import mage.constants.*;
import mage.view.CardView;
import mage.view.CounterView;
import mage.view.PermanentView;
@@ -26,6 +10,10 @@ import org.jdesktop.swingx.JXPanel;
import org.mage.card.arcane.ManaSymbols;
import org.mage.card.arcane.UI;
+import javax.swing.*;
+import java.awt.*;
+import java.util.ArrayList;
+
public final class GuiDisplayUtil {
private static final Font cardNameFont = new Font("Calibri", Font.BOLD, 15);
@@ -280,9 +268,9 @@ public final class GuiDisplayUtil {
buffer.append("");
String pt = "";
- if (CardUtil.isCreature(card)) {
+ if (card.isCreature()) {
pt = card.getPower() + '/' + card.getToughness();
- } else if (CardUtil.isPlaneswalker(card)) {
+ } else if (card.isPlanesWalker()) {
pt = card.getLoyalty();
}
@@ -360,8 +348,8 @@ public final class GuiDisplayUtil {
private static String getTypes(CardView card) {
String types = "";
- for (String superType : card.getSuperTypes()) {
- types += superType + ' ';
+ for (SuperType superType : card.getSuperTypes()) {
+ types += superType.toString() + ' ';
}
for (CardType cardType : card.getCardTypes()) {
types += cardType.toString() + ' ';
diff --git a/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java b/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java
index cc6907b6145..61b28bda4ed 100644
--- a/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java
+++ b/Mage.Client/src/main/java/mage/client/util/stats/UpdateMemUsageTask.java
@@ -3,6 +3,7 @@ package mage.client.util.stats;
import java.util.List;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
import javax.swing.*;
import org.apache.log4j.Logger;
@@ -29,7 +30,7 @@ public class UpdateMemUsageTask extends SwingWorker {
while (!isCancelled()) {
float memUsage = MemoryUsageStatUtil.getMemoryFreeStatPercentage();
this.publish(memUsage >= 0 ? memUsage : null);
- Thread.sleep(MEM_USAGE_UPDATE_TIME);
+ TimeUnit.MILLISECONDS.sleep(MEM_USAGE_UPDATE_TIME);
}
return null;
}
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java
index fd32e3d393c..4bfa5b1f7dc 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java
@@ -1,27 +1,5 @@
package org.mage.card.arcane;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.event.ActionListener;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
import mage.cards.MagePermanent;
import mage.cards.TextPopup;
import mage.cards.action.ActionCallback;
@@ -31,6 +9,7 @@ import mage.client.plugins.impl.Plugins;
import mage.client.util.audio.AudioManager;
import mage.constants.CardType;
import mage.constants.EnlargeMode;
+import mage.constants.SuperType;
import mage.view.AbilityView;
import mage.view.CardView;
import mage.view.PermanentView;
@@ -38,6 +17,14 @@ import mage.view.StackAbilityView;
import org.apache.log4j.Logger;
import org.mage.plugins.card.utils.impl.ImageManagerImpl;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.awt.image.BufferedImage;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
/**
* Main class for drawing Mage card object.
*
@@ -680,8 +667,8 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
protected final String getType(CardView card) {
StringBuilder sbType = new StringBuilder();
- for (String superType : card.getSuperTypes()) {
- sbType.append(superType).append(' ');
+ for (SuperType superType : card.getSuperTypes()) {
+ sbType.append(superType.toString()).append(' ');
}
for (CardType cardType : card.getCardTypes()) {
@@ -713,9 +700,9 @@ public abstract class CardPanel extends MagePermanent implements MouseListener,
if (card.getColor().hasColor()) {
sb.append('\n').append(card.getColor().toString());
}
- if (card.getCardTypes().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
sb.append('\n').append(card.getPower()).append('/').append(card.getToughness());
- } else if (card.getCardTypes().contains(CardType.PLANESWALKER)) {
+ } else if (card.isPlanesWalker()) {
sb.append('\n').append(card.getLoyalty());
}
if (card.getRules() == null) {
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java
index 5319493b3db..01c7a6db234 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelComponentImpl.java
@@ -9,7 +9,6 @@ import mage.client.util.ImageHelper;
import mage.components.ImagePanel;
import mage.components.ImagePanelStyle;
import mage.constants.AbilityType;
-import mage.utils.CardUtil;
import mage.view.CardView;
import mage.view.CounterView;
import mage.view.PermanentView;
@@ -232,9 +231,9 @@ public class CardPanelComponentImpl extends CardPanel {
// PT Text
ptText = new GlowText();
- if (CardUtil.isCreature(gameCard)) {
+ if (gameCard.isCreature()) {
ptText.setText(gameCard.getPower() + '/' + gameCard.getToughness());
- } else if (CardUtil.isPlaneswalker(gameCard)) {
+ } else if (gameCard.isPlanesWalker()) {
ptText.setText(gameCard.getLoyalty());
}
// ptText.setFont(getFont().deriveFont(Font.BOLD, fontSize));
@@ -424,7 +423,7 @@ public class CardPanelComponentImpl extends CardPanel {
imagePanel.setLocation(cardXOffset + borderSize, cardYOffset + borderSize);
imagePanel.setSize(cardWidth - borderSize * 2, cardHeight - borderSize * 2);
- if (hasSickness() && CardUtil.isCreature(gameCard) && isPermanent()) {
+ if (hasSickness() && gameCard.isCreature() && isPermanent()) {
overlayPanel.setLocation(cardXOffset + borderSize, cardYOffset + borderSize);
overlayPanel.setSize(cardWidth - borderSize * 2, cardHeight - borderSize * 2);
} else {
@@ -571,11 +570,11 @@ public class CardPanelComponentImpl extends CardPanel {
super.update(card);
// Update card text
- if (CardUtil.isCreature(card) && CardUtil.isPlaneswalker(card)) {
+ if (card.isCreature() && card.isPlanesWalker()) {
ptText.setText(card.getPower() + '/' + card.getToughness() + " (" + card.getLoyalty() + ')');
- } else if (CardUtil.isCreature(card)) {
+ } else if (card.isCreature()) {
ptText.setText(card.getPower() + '/' + card.getToughness());
- } else if (CardUtil.isPlaneswalker(card)) {
+ } else if (card.isPlanesWalker()) {
ptText.setText(card.getLoyalty());
} else {
ptText.setText("");
@@ -583,7 +582,7 @@ public class CardPanelComponentImpl extends CardPanel {
setText(card);
// Summoning Sickness overlay
- if (hasSickness() && CardUtil.isCreature(gameCard) && isPermanent()) {
+ if (hasSickness() && card.isCreature() && isPermanent()) {
overlayPanel.setVisible(true);
} else {
overlayPanel.setVisible(false);
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java
index a5ff85e3b2a..11912aade90 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanelRenderImpl.java
@@ -3,6 +3,7 @@ package org.mage.card.arcane;
import com.google.common.collect.MapMaker;
import mage.cards.action.ActionCallback;
import mage.constants.CardType;
+import mage.constants.SuperType;
import mage.view.CardView;
import mage.view.CounterView;
import mage.view.PermanentView;
@@ -157,7 +158,7 @@ public class CardPanelRenderImpl extends CardPanel {
for (CardType type : this.view.getCardTypes()) {
sb.append((char) type.ordinal());
}
- for (String s : this.view.getSuperTypes()) {
+ for (SuperType s : this.view.getSuperTypes()) {
sb.append(s);
}
for (String s : this.view.getSubTypes()) {
@@ -216,12 +217,16 @@ public class CardPanelRenderImpl extends CardPanel {
}
}
+
// Map of generated images
private final static Map IMAGE_CACHE = new MapMaker().softValues().makeMap();
// The art image for the card, loaded in from the disk
private BufferedImage artImage;
+ // Factory to generate card appropriate views
+ private CardRendererFactory cardRendererFactory = new CardRendererFactory();
+
// The rendered card image, with or without the art image loaded yet
// = null while invalid
private BufferedImage cardImage;
@@ -232,7 +237,7 @@ public class CardPanelRenderImpl extends CardPanel {
super(newGameCard, gameId, loadImage, callback, foil, dimension);
// Renderer
- cardRenderer = new ModernCardRenderer(gameCard, isTransformed());
+ cardRenderer = cardRendererFactory.create(gameCard, isTransformed());
// Draw the parts
initialDraw();
@@ -268,6 +273,10 @@ public class CardPanelRenderImpl extends CardPanel {
g.drawImage(cardImage, getCardXOffset(), getCardYOffset(), null);
}
+ /**
+ * Create an appropriate card renderer for the
+ */
+
/**
* Render the card to a new BufferedImage at it's current dimensions
*
@@ -358,7 +367,7 @@ public class CardPanelRenderImpl extends CardPanel {
// Update renderer
cardImage = null;
- cardRenderer = new ModernCardRenderer(gameCard, isTransformed());
+ cardRenderer = cardRendererFactory.create(gameCard, isTransformed());
cardRenderer.setArtImage(artImage);
// Repaint
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java
index 477e27bbb7c..1f175411889 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRenderer.java
@@ -5,23 +5,22 @@
*/
package org.mage.card.arcane;
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.Paint;
-import java.awt.Polygon;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
+import mage.cards.ArtRect;
import mage.client.dialog.PreferencesDialog;
import mage.constants.AbilityType;
import mage.constants.CardType;
-import mage.utils.CardUtil;
+import mage.constants.SuperType;
import mage.view.CardView;
import mage.view.CounterView;
import mage.view.PermanentView;
+import java.awt.*;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.awt.image.RasterFormatException;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* @author stravant@gmail.com
*
@@ -125,20 +124,29 @@ public abstract class CardRenderer {
this.cardView = card;
this.isTransformed = isTransformed;
+ if (card.getArtRect() == ArtRect.SPLIT_FUSED) {
+ parseRules(card.getLeftSplitRules(), textboxKeywords, textboxRules);
+ parseRules(card.getRightSplitRules(), textboxKeywords, textboxRules);
+ } else {
+ parseRules(card.getRules(), textboxKeywords, textboxRules);
+ }
+ }
+
+ protected void parseRules(List stringRules, ArrayList keywords, ArrayList rules) {
// Translate the textbox text
- for (String rule : card.getRules()) {
+ for (String rule : stringRules) {
// Kill reminder text
if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_RENDERING_REMINDER_TEXT, "false").equals("false")) {
rule = CardRendererUtils.killReminderText(rule).trim();
}
if (!rule.isEmpty()) {
- TextboxRule tbRule = TextboxRuleParser.parse(card, rule);
+ TextboxRule tbRule = TextboxRuleParser.parse(cardView, rule);
if (tbRule.type == TextboxRuleType.SIMPLE_KEYWORD) {
- textboxKeywords.add(tbRule);
+ keywords.add(tbRule);
} else if (tbRule.text.isEmpty()) {
// Nothing to do, rule is empty
} else {
- textboxRules.add(tbRule);
+ rules.add(tbRule);
}
}
}
@@ -227,7 +235,7 @@ public abstract class CardRenderer {
// Draw summoning sickness overlay, and possibly other overlays
protected void drawOverlays(Graphics2D g) {
- if (CardUtil.isCreature(cardView) && cardView instanceof PermanentView) {
+ if (cardView.isCreature() && cardView instanceof PermanentView) {
if (((PermanentView) cardView).hasSummoningSickness()) {
int x1 = (int) (0.2 * cardWidth);
int x2 = (int) (0.8 * cardWidth);
@@ -258,6 +266,39 @@ public abstract class CardRenderer {
}
}
+ protected void drawArtIntoRect(Graphics2D g, int x, int y, int w, int h, Rectangle2D artRect, boolean shouldPreserveAspect) {
+ // Perform a process to make sure that the art is scaled uniformly to fill the frame, cutting
+ // off the minimum amount necessary to make it completely fill the frame without "squashing" it.
+ double fullCardImgWidth = artImage.getWidth();
+ double fullCardImgHeight = artImage.getHeight();
+ double artWidth = artRect.getWidth() * fullCardImgWidth;
+ double artHeight = artRect.getHeight() * fullCardImgHeight;
+ double targetWidth = w;
+ double targetHeight = h;
+ double targetAspect = targetWidth / targetHeight;
+ if (!shouldPreserveAspect) {
+ // No adjustment to art
+ } else if (targetAspect * artHeight < artWidth) {
+ // Trim off some width
+ artWidth = targetAspect * artHeight;
+ } else {
+ // Trim off some height
+ artHeight = artWidth / targetAspect;
+ }
+ try {
+ BufferedImage subImg
+ = artImage.getSubimage(
+ (int) (artRect.getX() * fullCardImgWidth), (int) (artRect.getY() * fullCardImgHeight),
+ (int) artWidth, (int) artHeight);
+ g.drawImage(subImg,
+ x, y,
+ (int) targetWidth, (int) targetHeight,
+ null);
+ } catch (RasterFormatException e) {
+ // At very small card sizes we may encounter a problem with rounding error making the rect not fit
+ }
+ }
+
// Draw +1/+1 and other counters
protected void drawCounters(Graphics2D g) {
int xPos = (int) (0.65 * cardWidth);
@@ -379,7 +420,7 @@ public abstract class CardRenderer {
}
} else {
StringBuilder sbType = new StringBuilder();
- for (String superType : cardView.getSuperTypes()) {
+ for (SuperType superType : cardView.getSuperTypes()) {
sbType.append(superType).append(' ');
}
for (CardType cardType : cardView.getCardTypes()) {
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererFactory.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererFactory.java
new file mode 100644
index 00000000000..39ba0670aab
--- /dev/null
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererFactory.java
@@ -0,0 +1,23 @@
+package org.mage.card.arcane;
+
+import mage.cards.ArtRect;
+import mage.view.CardView;
+
+/**
+ * Created by StravantUser on 2017-03-30.
+ */
+public class CardRendererFactory {
+ public CardRendererFactory() {
+
+ }
+
+ public CardRenderer create(CardView card, boolean isTransformed) {
+ if (card.isSplitCard() && card.getArtRect() != ArtRect.SPLIT_FUSED) {
+ // Split fused cards still render with the normal frame, showing all abilities
+ // from both halves in one frame.
+ return new ModernSplitCardRenderer(card, isTransformed);
+ } else {
+ return new ModernCardRenderer(card, isTransformed);
+ }
+ }
+}
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java
index e5b6242dd53..89a6a5d173a 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardRendererUtils.java
@@ -57,7 +57,7 @@ public final class CardRendererUtils {
// Draw a rounded box with a 2-pixel border
// Used on various card parts.
- public static void drawRoundedBox(Graphics2D g, int x, int y, int w, int h, int bevel, Paint border, Color fill) {
+ public static void drawRoundedBox(Graphics2D g, int x, int y, int w, int h, int bevel, Paint border, Paint fill) {
g.setColor(new Color(0, 0, 0, 150));
g.drawOval(x - 1, y - 1, bevel * 2, h);
g.setPaint(border);
@@ -67,7 +67,7 @@ public final class CardRendererUtils {
g.drawOval(x + 1 + w - bevel * 2, y + 1, bevel * 2 - 3, h - 3);
g.drawRect(x + bevel, y, w - 2 * bevel, h - 1);
g.drawRect(x + 1 + bevel, y + 1, w - 2 * bevel - 2, h - 3);
- g.setColor(fill);
+ g.setPaint(fill);
g.fillOval(x + 2, y + 2, bevel * 2 - 4, h - 4);
g.fillOval(x + 2 + w - bevel * 2, y + 2, bevel * 2 - 4, h - 4);
g.fillRect(x + bevel, y + 2, w - 2 * bevel, h - 4);
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java
index fd843418975..740e4d73c28 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/ModernCardRenderer.java
@@ -6,9 +6,11 @@
package org.mage.card.arcane;
import mage.ObjectColor;
+import mage.cards.ArtRect;
import mage.cards.FrameStyle;
import mage.client.dialog.PreferencesDialog;
import mage.constants.CardType;
+import mage.constants.MageObjectType;
import mage.view.CardView;
import mage.view.PermanentView;
import org.apache.log4j.Logger;
@@ -18,8 +20,8 @@ import java.awt.*;
import java.awt.font.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
-import java.awt.image.RasterFormatException;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
import java.text.AttributedCharacterIterator;
import java.text.AttributedString;
@@ -73,10 +75,9 @@ public class ModernCardRenderer extends CardRenderer {
}
private static Font loadFont(String name) {
- try {
+ try(InputStream in = ModernCardRenderer.class.getResourceAsStream("/cardrender/" + name + ".ttf")) {
return Font.createFont(
- Font.TRUETYPE_FONT,
- ModernCardRenderer.class.getResourceAsStream("/cardrender/" + name + ".ttf"));
+ Font.TRUETYPE_FONT,in);
} catch (IOException e) {
LOGGER.info("Failed to load font `" + name + "`, couldn't find resource.");
} catch (FontFormatException e) {
@@ -311,7 +312,7 @@ public class ModernCardRenderer extends CardRenderer {
} else if (cardView.getFrameStyle().isFullArt() || (cardView.isToken())) {
rect = new Rectangle2D.Float(.079f, .11f, .84f, .63f);
} else {
- rect = new Rectangle2D.Float(.079f, .11f, .84f, .42f);
+ rect = ArtRect.NORMAL.rect;
}
return rect;
}
@@ -346,45 +347,42 @@ public class ModernCardRenderer extends CardRenderer {
@Override
protected void drawArt(Graphics2D g) {
if (artImage != null && !cardView.isFaceDown()) {
- Rectangle2D artRect = getArtRect();
-
- // Perform a process to make sure that the art is scaled uniformly to fill the frame, cutting
- // off the minimum amount necessary to make it completely fill the frame without "squashing" it.
- double fullCardImgWidth = artImage.getWidth();
- double fullCardImgHeight = artImage.getHeight();
- double artWidth = artRect.getWidth() * fullCardImgWidth;
- double artHeight = artRect.getHeight() * fullCardImgHeight;
- double targetWidth = contentWidth - 2;
- double targetHeight = typeLineY - totalContentInset - boxHeight;
- double targetAspect = targetWidth / targetHeight;
+ // Invention rendering, art fills the entire frame
if (useInventionFrame()) {
- // No adjustment to art
- } else if (targetAspect * artHeight < artWidth) {
- // Trim off some width
- artWidth = targetAspect * artHeight;
- } else {
- // Trim off some height
- artHeight = artWidth / targetAspect;
+ drawArtIntoRect(g,
+ borderWidth, borderWidth,
+ cardWidth - 2*borderWidth, cardHeight - 2*borderWidth,
+ getArtRect(), false);
}
- try {
- BufferedImage subImg
- = artImage.getSubimage(
- (int) (artRect.getX() * fullCardImgWidth), (int) (artRect.getY() * fullCardImgHeight),
- (int) artWidth, (int) artHeight);
- if (useInventionFrame()) {
- g.drawImage(subImg,
- borderWidth, borderWidth,
- cardWidth - 2 * borderWidth, cardHeight - 2 * borderWidth,
- null);
- } else {
- g.drawImage(subImg,
+
+ boolean shouldPreserveAspect = true;
+ Rectangle2D sourceRect = getArtRect();
+
+ if (cardView.getMageObjectType() == MageObjectType.SPELL) {
+ ArtRect rect = cardView.getArtRect();
+ if (rect == ArtRect.SPLIT_FUSED) {
+ // Special handling for fused, draw the art from both halves stacked on top of one and other
+ // each filling half of the art rect
+ drawArtIntoRect(g,
totalContentInset + 1, totalContentInset + boxHeight,
- (int) targetWidth, (int) targetHeight,
- null);
+ contentWidth - 2, (typeLineY - totalContentInset - boxHeight)/2,
+ ArtRect.SPLIT_LEFT.rect, useInventionFrame());
+ drawArtIntoRect(g,
+ totalContentInset + 1, totalContentInset + boxHeight + (typeLineY - totalContentInset - boxHeight)/2,
+ contentWidth - 2, (typeLineY - totalContentInset - boxHeight)/2,
+ ArtRect.SPLIT_RIGHT.rect, useInventionFrame());
+ return;
+ } else if (rect != ArtRect.NORMAL) {
+ sourceRect = rect.rect;
+ shouldPreserveAspect = false;
}
- } catch (RasterFormatException e) {
- // At very small card sizes we may encounter a problem with rounding error making the rect not fit
}
+
+ // Normal drawing of art from a source part of the card frame into the rect
+ drawArtIntoRect(g,
+ totalContentInset + 1, totalContentInset + boxHeight,
+ contentWidth - 2, typeLineY - totalContentInset - boxHeight,
+ sourceRect, shouldPreserveAspect);
}
}
@@ -427,7 +425,7 @@ public class ModernCardRenderer extends CardRenderer {
contentWidth - 2, cardHeight - borderWidth * 3 - typeLineY - 1);
// If it's a planeswalker, extend the textbox left border by some
- if (cardView.getCardTypes().contains(CardType.PLANESWALKER)) {
+ if (cardView.isPlanesWalker()) {
g.setPaint(borderPaint);
g.fillRect(
totalContentInset, typeLineY + boxHeight,
@@ -478,17 +476,17 @@ public class ModernCardRenderer extends CardRenderer {
int nameOffset = drawTransformationCircle(g, borderPaint);
// Draw the name line
- drawNameLine(g,
+ drawNameLine(g, cardView.getDisplayName(), manaCostString,
totalContentInset + nameOffset, totalContentInset,
contentWidth - nameOffset, boxHeight);
// Draw the type line
- drawTypeLine(g,
+ drawTypeLine(g, getCardTypeLine(),
totalContentInset, typeLineY,
contentWidth, boxHeight);
// Draw the textbox rules
- drawRulesText(g,
+ drawRulesText(g, textboxKeywords, textboxRules,
totalContentInset + 2, typeLineY + boxHeight + 2,
contentWidth - 4, cardHeight - typeLineY - boxHeight - 4 - borderWidth * 3);
@@ -497,13 +495,13 @@ public class ModernCardRenderer extends CardRenderer {
}
// Draw the name line
- protected void drawNameLine(Graphics2D g, int x, int y, int w, int h) {
+ protected void drawNameLine(Graphics2D g, String baseName, String manaCost, int x, int y, int w, int h) {
// Width of the mana symbols
int manaCostWidth;
if (cardView.isAbility()) {
manaCostWidth = 0;
} else {
- manaCostWidth = CardRendererUtils.getManaCostWidth(manaCostString, boxTextHeight);
+ manaCostWidth = CardRendererUtils.getManaCostWidth(manaCost, boxTextHeight);
}
// Available width for name. Add a little bit of slop so that one character
@@ -519,7 +517,7 @@ public class ModernCardRenderer extends CardRenderer {
nameStr = "Morph: " + cardView.getName();
}
} else {
- nameStr = cardView.getName();
+ nameStr = baseName;
}
if (!nameStr.isEmpty()) {
AttributedString str = new AttributedString(nameStr);
@@ -541,12 +539,12 @@ public class ModernCardRenderer extends CardRenderer {
// Draw the mana symbols
if (!cardView.isAbility() && !cardView.isFaceDown()) {
- ManaSymbols.draw(g, manaCostString, x + w - manaCostWidth, y + boxTextOffset, boxTextHeight);
+ ManaSymbols.draw(g, manaCost, x + w - manaCostWidth, y + boxTextOffset, boxTextHeight);
}
}
// Draw the type line (color indicator, types, and expansion symbol)
- protected void drawTypeLine(Graphics2D g, int x, int y, int w, int h) {
+ protected void drawTypeLine(Graphics2D g, String baseTypeLine, int x, int y, int w, int h) {
// Draw expansion symbol
int expansionSymbolWidth;
if (PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_RENDERING_SET_SYMBOL, "false").equals("false")) {
@@ -561,7 +559,7 @@ public class ModernCardRenderer extends CardRenderer {
// Draw type line text
int availableWidth = w - expansionSymbolWidth + 1;
- String types = getCardTypeLine();
+ String types = baseTypeLine;
g.setFont(boxTextFont);
// Replace "Legendary" in type line if there's not enough space
@@ -583,7 +581,7 @@ public class ModernCardRenderer extends CardRenderer {
if (breakIndex > 0) {
TextLayout layout = measure.getLayout(0, breakIndex);
g.setColor(getBoxTextColor());
- layout.draw(g, x, y + boxTextOffset + boxTextHeight - 1);
+ layout.draw(g, x, y + (h - boxTextHeight) / 2 + boxTextHeight - 1);
}
}
}
@@ -603,7 +601,7 @@ public class ModernCardRenderer extends CardRenderer {
// Is it a creature?
boolean isVehicle = cardView.getSubTypes().contains("Vehicle");
- if (cardView.getCardTypes().contains(CardType.CREATURE) || isVehicle) {
+ if (cardView.isCreature() || isVehicle) {
int x = cardWidth - borderWidth - partWidth;
// Draw PT box
@@ -623,7 +621,7 @@ public class ModernCardRenderer extends CardRenderer {
// Draw text
Color textColor;
if (isVehicle) {
- boolean isAnimated = !(cardView instanceof PermanentView) || cardView.getCardTypes().contains(CardType.CREATURE);
+ boolean isAnimated = !(cardView instanceof PermanentView) || cardView.isCreature();
if (isAnimated) {
textColor = Color.white;
} else {
@@ -646,7 +644,7 @@ public class ModernCardRenderer extends CardRenderer {
// Is it a walker? (But don't draw the box if it's a non-permanent view
// of a walker without a starting loyalty (EG: Arlin Kord's flipped side).
- if (cardView.getCardTypes().contains(CardType.PLANESWALKER)
+ if (cardView.isPlanesWalker()
&& (cardView instanceof PermanentView || !cardView.getStartingLoyalty().equals("0"))) {
// Draw the PW loyalty box
int w = partWidth;
@@ -760,19 +758,19 @@ public class ModernCardRenderer extends CardRenderer {
return layout;
}
- protected void drawRulesText(Graphics2D g, int x, int y, int w, int h) {
+ protected void drawRulesText(Graphics2D g, ArrayList keywords, ArrayList rules, int x, int y, int w, int h) {
// Gather all rules to render
- List allRules = new ArrayList<>(textboxRules);
+ List allRules = new ArrayList<>(rules);
// Add the keyword rule if there are any keywords
- if (!textboxKeywords.isEmpty()) {
- String keywordRulesString = getKeywordRulesString();
+ if (!keywords.isEmpty()) {
+ String keywordRulesString = getKeywordRulesString(keywords);
TextboxRule keywordsRule = new TextboxRule(keywordRulesString, new ArrayList<>());
allRules.add(0, keywordsRule);
}
// Basic mana draw mana symbol in textbox (for basic lands)
- if (allRules.size() == 1 && (allRules.get(0) instanceof TextboxBasicManaRule) && cardView.getCardTypes().contains(CardType.LAND)) {
+ if (allRules.size() == 1 && (allRules.get(0) instanceof TextboxBasicManaRule) && cardView.isLand()) {
drawBasicManaTextbox(g, x, y, w, h, ((TextboxBasicManaRule) allRules.get(0)).getBasicManaSymbol());
return;
}
@@ -828,11 +826,11 @@ public class ModernCardRenderer extends CardRenderer {
}
// Get the first line of the textbox, the keyword string
- private String getKeywordRulesString() {
+ private static String getKeywordRulesString(ArrayList keywords) {
StringBuilder builder = new StringBuilder();
- for (int i = 0; i < textboxKeywords.size(); ++i) {
- builder.append(textboxKeywords.get(i).text);
- if (i != textboxKeywords.size() - 1) {
+ for (int i = 0; i < keywords.size(); ++i) {
+ builder.append(keywords.get(i).text);
+ if (i != keywords.size() - 1) {
builder.append(", ");
}
}
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ModernSplitCardRenderer.java b/Mage.Client/src/main/java/org/mage/card/arcane/ModernSplitCardRenderer.java
new file mode 100644
index 00000000000..98d01254c6d
--- /dev/null
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/ModernSplitCardRenderer.java
@@ -0,0 +1,326 @@
+package org.mage.card.arcane;
+
+import mage.ObjectColor;
+import mage.abilities.costs.mana.ManaCosts;
+import mage.cards.ArtRect;
+import mage.constants.CardType;
+import mage.view.CardView;
+
+import java.awt.*;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by StravantUser on 2017-03-30.
+ */
+public class ModernSplitCardRenderer extends ModernCardRenderer {
+
+ private class HalfCardProps {
+ int x, y, w, h, cw, ch;
+
+ String name;
+ String typeLineString;
+ String manaCostString;
+ ObjectColor color;
+ ArrayList rules = new ArrayList<>();
+ ArrayList keywords = new ArrayList<>();
+ }
+
+ private static ArrayList ONLY_LAND_TYPE = new ArrayList() {{add(CardType.LAND);}};
+
+ // Right and left halves of the card content
+ private HalfCardProps rightHalf = new HalfCardProps();
+ private HalfCardProps leftHalf = new HalfCardProps();
+
+ // Where and how big is the divider between the card halves
+ private int dividerAt;
+ private int dividerSize;
+
+ // Is fuse / aftermath
+ private boolean isFuse = false;
+ private boolean isAftermath = false;
+
+ public ModernSplitCardRenderer(CardView view, boolean isTransformed) {
+ super(view, isTransformed);
+
+ rightHalf.manaCostString = ManaSymbols.getStringManaCost(cardView.getRightSplitCosts().getSymbols());
+ leftHalf.manaCostString = ManaSymbols.getStringManaCost(cardView.getLeftSplitCosts().getSymbols());
+
+ rightHalf.color = getColorFromManaCostHack(cardView.getRightSplitCosts());
+ leftHalf.color = getColorFromManaCostHack(cardView.getLeftSplitCosts());
+
+ parseRules(view.getRightSplitRules(), rightHalf.keywords, rightHalf.rules);
+ parseRules(view.getLeftSplitRules(), leftHalf.keywords, leftHalf.rules);
+
+ rightHalf.typeLineString = cardView.getRightSplitTypeLine();
+ leftHalf.typeLineString = cardView.getLeftSplitTypeLine();
+
+ rightHalf.name = cardView.getRightSplitName();
+ leftHalf.name = cardView.getLeftSplitName();
+
+ isFuse = view.getRules().stream().anyMatch(rule -> rule.contains("Fuse"));
+ isAftermath = view.getRightSplitRules().stream().anyMatch(rule -> rule.contains("Aftermath"));
+
+ // It's easier for rendering to swap the card halves here because for aftermath cards
+ // they "rotate" in opposite directions making consquence and normal split cards
+ // have the "right" vs "left" as the top half.
+ if (!isAftermath()) {
+ HalfCardProps tmp = leftHalf;
+ leftHalf = rightHalf;
+ rightHalf = tmp;
+ }
+ }
+
+ private boolean isAftermath() {
+ return isAftermath;
+ }
+
+ private boolean isFuse() {
+ return isFuse;
+ }
+
+ @Override
+ protected void layout(int cardWidth, int cardHeight) {
+ // Pass to parent
+ super.layout(cardWidth, cardHeight);
+
+ // Decide size of divider
+ if (isAftermath()) {
+ dividerSize = borderWidth;
+ dividerAt = (int)(cardHeight*0.54);
+ } else {
+ int availHeight = cardHeight - totalContentInset - 3*borderWidth;
+ dividerSize = borderWidth*2;
+ dividerAt = (int)(totalContentInset + availHeight * 0.5 - borderWidth);
+ }
+
+ // Decide size of each halves box
+ rightHalf.x = leftHalf.x = totalContentInset;
+ rightHalf.w = leftHalf.w = cardWidth - 2*totalContentInset;
+ leftHalf.y = totalContentInset;
+ leftHalf.h = dividerAt - totalContentInset;
+ rightHalf.y = dividerAt + dividerSize;
+ rightHalf.h = cardHeight - rightHalf.y - borderWidth*3;
+
+ // Content width / height (Exchanged from width / height if the card part is rotated)
+ if (isAftermath()) {
+ leftHalf.cw = leftHalf.w;
+ leftHalf.ch = leftHalf.h;
+ } else {
+ leftHalf.cw = leftHalf.h;
+ leftHalf.ch = leftHalf.w;
+ }
+ rightHalf.cw = rightHalf.h;
+ rightHalf.ch = rightHalf.w;
+
+ // Fuse space
+ if (isFuse()) {
+ rightHalf.ch -= boxHeight;
+ leftHalf.ch -= boxHeight;
+ }
+ }
+
+ // Ugly hack used here because the card database doesn't actually store color
+ // for each half of split cards separately.
+ private ObjectColor getColorFromManaCostHack(ManaCosts costs) {
+ ObjectColor c = new ObjectColor();
+ List symbols = costs.getSymbols();
+ for (String symbol: symbols) {
+ if (symbol.contains("W")) {
+ c.setWhite(true);
+ } else if (symbol.contains("U")) {
+ c.setBlue(true);
+ } else if (symbol.contains("B")) {
+ c.setBlack(true);
+ } else if (symbol.contains("R")) {
+ c.setRed(true);
+ } else if (symbol.contains("G")) {
+ c.setGreen(true);
+ }
+ }
+ return c;
+ }
+
+ @Override
+ protected void drawBackground(Graphics2D g) {
+ if (cardView.isFaceDown()) {
+ drawCardBack(g);
+ } else {
+ { // Left half background (top of the card)
+ // Set texture to paint the left with
+ g.setPaint(getBackgroundPaint(leftHalf.color, cardView.getCardTypes(), cardView.getSubTypes()));
+
+ // Draw main part (most of card)
+ g.fillRoundRect(
+ borderWidth, borderWidth,
+ cardWidth - 2*borderWidth, leftHalf.h + contentInset - borderWidth - 2*cornerRadius + (cornerRadius - 1),
+ cornerRadius - 1, cornerRadius - 1);
+
+ // Draw the M15 rounded "swoosh" at the bottom
+ g.fillRoundRect(
+ borderWidth, dividerAt - borderWidth - 4*cornerRadius,
+ cardWidth - 2*borderWidth, cornerRadius * 4,
+ cornerRadius * 2, cornerRadius * 2);
+
+ // Draw the cutout into the "swoosh" for the textbox to lie over
+ g.fillRect(
+ borderWidth + contentInset, dividerAt - 2*borderWidth,
+ cardWidth - borderWidth * 2 - contentInset * 2, borderWidth * 2);
+ }
+
+ { // Right half background (bottom half of the card)
+ // Set texture to paint the right with
+ g.setPaint(getBackgroundPaint(rightHalf.color, cardView.getCardTypes(), cardView.getSubTypes()));
+
+ // Draw the M15 rounded "swoosh"es at the top and bottom
+ g.fillRoundRect(
+ borderWidth, dividerAt + dividerSize + borderWidth,
+ cardWidth - 2*borderWidth, rightHalf.h - 2*borderWidth,
+ cornerRadius*2, cornerRadius*2);
+
+ // Draw the cutout into the "swoosh" for the textbox to lie over
+ g.fillRect(
+ borderWidth + contentInset, dividerAt + dividerSize,
+ cardWidth - borderWidth * 2 - contentInset * 2, rightHalf.h);
+ }
+ }
+ }
+
+ @Override
+ protected void drawArt(Graphics2D g) {
+ if (artImage != null && !cardView.isFaceDown()) {
+ if (isAftermath()) {
+ Rectangle2D topRect = ArtRect.AFTERMATH_TOP.rect;
+ int topLineY = (int) (leftHalf.ch * TYPE_LINE_Y_FRAC);
+ drawArtIntoRect(g,
+ leftHalf.x, leftHalf.y + boxHeight, leftHalf.cw, topLineY - boxHeight,
+ topRect, false);
+
+ Rectangle2D bottomRect = ArtRect.AFTERMATH_BOTTOM.rect;
+ int bottomLineY = (rightHalf.ch - boxHeight) / 2;
+ drawArtIntoRect(g,
+ rightHalf.x + rightHalf.w - bottomLineY, rightHalf.y, bottomLineY - boxHeight, rightHalf.h,
+ bottomRect, false);
+
+ } else {
+ // NOTE: Art rects are reversed here, that is on purpose because we swap the left / right half
+ // of split cards for rendering for consistency between aftermath and normal split
+ Rectangle2D topRect = ArtRect.SPLIT_RIGHT.rect;
+ int topLineY = (int) (leftHalf.ch * TYPE_LINE_Y_FRAC);
+ drawArtIntoRect(g,
+ leftHalf.x + boxHeight, leftHalf.y, topLineY - boxHeight, leftHalf.h,
+ topRect, false);
+
+ Rectangle2D bottomRect = ArtRect.SPLIT_LEFT.rect;
+ int bottomLineY = (int) (rightHalf.ch * TYPE_LINE_Y_FRAC);
+ drawArtIntoRect(g,
+ rightHalf.x + boxHeight, rightHalf.y, bottomLineY - boxHeight, rightHalf.h,
+ bottomRect, false);
+ }
+ }
+ }
+
+ protected void drawSplitHalfFrame(Graphics2D g, HalfCardProps half, int typeLineY) {
+ // Get the border paint
+ Color boxColor = getBoxColor(half.color, cardView.getCardTypes(), isTransformed);
+ Paint textboxPaint = getTextboxPaint(half.color, cardView.getCardTypes(), cardWidth);
+ Paint borderPaint = getBorderPaint(half.color, cardView.getCardTypes(), cardWidth);
+
+ // Draw main frame
+ g.setPaint(borderPaint);
+ g.drawRect(
+ 0, 0,
+ half.cw - 1, half.ch - 1);
+
+ // Background of textbox
+ g.setPaint(textboxPaint);
+ g.fillRect(
+ 1, typeLineY,
+ half.cw - 2, half.ch - typeLineY - 1);
+
+ // Draw the name line box
+ CardRendererUtils.drawRoundedBox(g,
+ -borderWidth, 0,
+ half.cw + 2 * borderWidth, boxHeight,
+ contentInset,
+ borderPaint, boxColor);
+
+ // Draw the type line box
+ CardRendererUtils.drawRoundedBox(g,
+ -borderWidth, typeLineY,
+ half.cw + 2 * borderWidth, boxHeight - 4,
+ contentInset,
+ borderPaint, boxColor);
+
+ // Draw the name line
+ drawNameLine(g, half.name, half.manaCostString,
+ 0, 0,
+ half.cw, boxHeight);
+
+ // Draw the type line
+ drawTypeLine(g, half.typeLineString,
+ 0, typeLineY,
+ half.cw, boxHeight - 4);
+
+ // Draw the textbox rules
+ drawRulesText(g, half.keywords, half.rules,
+ 2, typeLineY + boxHeight + 2 - 4,
+ half.cw - 4, half.ch - typeLineY - boxHeight);
+ }
+
+ private Graphics2D getUnmodifiedHalfContext(Graphics2D g) {
+ Graphics2D g2 = (Graphics2D)g.create();
+ g2.translate(leftHalf.x, leftHalf.y);
+ return g2;
+ }
+
+ private Graphics2D getAftermathHalfContext(Graphics2D g) {
+ Graphics2D g2 = (Graphics2D)g.create();
+ g2.translate(rightHalf.x, rightHalf.y);
+ g2.rotate(Math.PI / 2);
+ g2.translate(0, -rightHalf.w);
+ return g2;
+ }
+
+ private Graphics2D getLeftHalfContext(Graphics2D g) {
+ Graphics2D g2 = (Graphics2D)g.create();
+ g2.translate(leftHalf.x, leftHalf.y);
+ g2.rotate(-Math.PI / 2);
+ g2.translate(-leftHalf.cw, 0);
+ return g2;
+ }
+
+ private Graphics2D getRightHalfContext(Graphics2D g) {
+ Graphics2D g2 = (Graphics2D)g.create();
+ g2.translate(rightHalf.x, rightHalf.y);
+ g2.rotate(-Math.PI / 2);
+ g2.translate(-rightHalf.cw, 0);
+ return g2;
+ }
+
+ @Override
+ protected void drawFrame(Graphics2D g) {
+ if (isAftermath()) {
+ drawSplitHalfFrame(getUnmodifiedHalfContext(g), leftHalf, (int)(leftHalf.ch * TYPE_LINE_Y_FRAC));
+ drawSplitHalfFrame(getAftermathHalfContext(g), rightHalf, (rightHalf.ch - boxHeight) / 2);
+ } else {
+ drawSplitHalfFrame(getLeftHalfContext(g), leftHalf, (int)(leftHalf.ch * TYPE_LINE_Y_FRAC));
+ drawSplitHalfFrame(getRightHalfContext(g), rightHalf, (int)(rightHalf.ch * TYPE_LINE_Y_FRAC));
+ if (isFuse()) {
+ Graphics2D g2 = getRightHalfContext(g);
+ int totalFuseBoxWidth = rightHalf.cw * 2 + 2 * borderWidth + dividerSize;
+ Paint boxColor = getTextboxPaint(cardView.getColor(), ONLY_LAND_TYPE, totalFuseBoxWidth);
+ Paint borderPaint = getBorderPaint(cardView.getColor(), ONLY_LAND_TYPE, totalFuseBoxWidth);
+ CardRendererUtils.drawRoundedBox(g2,
+ -borderWidth, rightHalf.ch,
+ totalFuseBoxWidth, boxHeight,
+ contentInset,
+ borderPaint, boxColor);
+ drawNameLine(g2, "Fuse (You may cast both halves from your hand)", "",
+ 0, rightHalf.ch,
+ totalFuseBoxWidth - 2*borderWidth, boxHeight);
+ }
+ }
+ }
+}
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java
index 093f5418462..9dafbcb32bd 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRule.java
@@ -74,6 +74,9 @@ public class TextboxRule {
private final List regions;
protected TextboxRule(String text, List regions, TextboxRuleType type) {
+ if (text.isEmpty()) {
+ throw new IllegalArgumentException("Empty rule");
+ }
this.text = text;
this.type = type;
this.regions = regions;
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java
index 63c91b1490c..004ed7c7843 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/TextboxRuleParser.java
@@ -13,6 +13,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import mage.view.CardView;
import org.apache.log4j.Logger;
+import org.apache.log4j.jmx.LoggerDynamicMBean;
/**
*
diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/Util.java b/Mage.Client/src/main/java/org/mage/card/arcane/Util.java
index 87d91920447..2c02a2d0c44 100644
--- a/Mage.Client/src/main/java/org/mage/card/arcane/Util.java
+++ b/Mage.Client/src/main/java/org/mage/card/arcane/Util.java
@@ -11,20 +11,21 @@ import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
-
import javax.swing.SwingUtilities;
-@SuppressWarnings({ "rawtypes", "unchecked" })
+@SuppressWarnings({"rawtypes", "unchecked"})
public final class Util {
+
public static final boolean isMac = System.getProperty("os.name").toLowerCase().contains("mac");
public static final boolean isWindows = !System.getProperty("os.name").toLowerCase().contains("windows");
public static final ThreadPoolExecutor threadPool;
static private int threadCount;
+
static {
threadPool = new ThreadPoolExecutor(4, 4, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new ThreadFactory() {
@Override
- public Thread newThread (Runnable runnable) {
+ public Thread newThread(Runnable runnable) {
threadCount++;
Thread thread = new Thread(runnable, "Util" + threadCount);
thread.setDaemon(true);
@@ -34,14 +35,14 @@ public final class Util {
threadPool.prestartAllCoreThreads();
}
- public static void broadcast (byte[] data, int port) throws IOException {
+ public static void broadcast(byte[] data, int port) throws IOException {
DatagramSocket socket = new DatagramSocket();
broadcast(socket, data, port, NetworkInterface.getNetworkInterfaces());
socket.close();
}
- private static void broadcast (DatagramSocket socket, byte[] data, int port, Enumeration ifaces)
- throws IOException {
+ private static void broadcast(DatagramSocket socket, byte[] data, int port, Enumeration ifaces)
+ throws IOException {
for (NetworkInterface iface : Collections.list(ifaces)) {
for (InetAddress address : Collections.list(iface.getInetAddresses())) {
if (!address.isSiteLocalAddress()) {
@@ -57,14 +58,14 @@ public final class Util {
}
}
- public static void sleep (int millis) {
+ public static void sleep(int millis) {
try {
- Thread.sleep(millis);
+ TimeUnit.MILLISECONDS.sleep(millis);
} catch (InterruptedException ignored) {
}
}
- public static boolean classExists (String className) {
+ public static boolean classExists(String className) {
try {
Class.forName(className);
return true;
@@ -73,7 +74,7 @@ public final class Util {
}
}
- public static void wait (Object lock) {
+ public static void wait(Object lock) {
synchronized (lock) {
try {
lock.wait();
@@ -82,7 +83,7 @@ public final class Util {
}
}
- public static void invokeAndWait (Runnable runnable) {
+ public static void invokeAndWait(Runnable runnable) {
try {
SwingUtilities.invokeAndWait(runnable);
} catch (Exception ex) {
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java
index cc75bff9cfc..ba7356c0733 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java
@@ -1,20 +1,5 @@
package org.mage.plugins.card;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.Frame;
-import java.awt.Rectangle;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLayeredPane;
import mage.cards.MagePermanent;
import mage.cards.action.ActionCallback;
import mage.client.dialog.PreferencesDialog;
@@ -30,10 +15,7 @@ import net.xeoh.plugins.base.annotations.events.Init;
import net.xeoh.plugins.base.annotations.events.PluginLoaded;
import net.xeoh.plugins.base.annotations.meta.Author;
import org.apache.log4j.Logger;
-import org.mage.card.arcane.Animation;
-import org.mage.card.arcane.CardPanel;
-import org.mage.card.arcane.CardPanelComponentImpl;
-import org.mage.card.arcane.ManaSymbols;
+import org.mage.card.arcane.*;
import org.mage.plugins.card.dl.DownloadGui;
import org.mage.plugins.card.dl.DownloadJob;
import org.mage.plugins.card.dl.Downloader;
@@ -43,7 +25,15 @@ import org.mage.plugins.card.dl.sources.GathererSets;
import org.mage.plugins.card.dl.sources.GathererSymbols;
import org.mage.plugins.card.images.ImageCache;
import org.mage.plugins.card.info.CardInfoPaneImpl;
-import org.mage.card.arcane.CardPanelRenderImpl;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.image.BufferedImage;
+import java.util.*;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
* {@link CardPlugin} implementation.
@@ -108,14 +98,14 @@ public class CardPluginImpl implements CardPlugin {
cardWidthMin = (int) GUISizeHelper.battlefieldCardMinDimension.getWidth();
cardWidthMax = (int) GUISizeHelper.battlefieldCardMaxDimension.getWidth();
}
-
+
/**
- * Temporary card rendering shim. Split card rendering isn't implemented yet, so
- * use old component based rendering for the split cards.
+ * Temporary card rendering shim. Split card rendering isn't implemented
+ * yet, so use old component based rendering for the split cards.
*/
private CardPanel makePanel(CardView view, UUID gameId, boolean loadImage, ActionCallback callback, boolean isFoil, Dimension dimension) {
String fallback = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_CARD_RENDERING_FALLBACK, "false");
- if (view.isSplitCard() || fallback.equals("true")) {
+ if (fallback.equals("true")) {
return new CardPanelComponentImpl(view, gameId, loadImage, callback, isFoil, dimension);
} else {
return new CardPanelRenderImpl(view, gameId, loadImage, callback, isFoil, dimension);
@@ -584,7 +574,7 @@ public class CardPluginImpl implements CardPlugin {
Animation.showCard(card, count > 0 ? count : 1);
try {
while ((card).getAlpha() + 0.05f < 1) {
- Thread.sleep(30);
+ TimeUnit.MILLISECONDS.sleep(30);
}
} catch (Exception e) {
e.printStackTrace();
@@ -598,7 +588,7 @@ public class CardPluginImpl implements CardPlugin {
Animation.hideCard(card, count > 0 ? count : 1);
try {
while ((card).getAlpha() - 0.05f > 0) {
- Thread.sleep(30);
+ TimeUnit.MILLISECONDS.sleep(30);
}
} catch (Exception e) {
e.printStackTrace();
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java
index 2799f503aa3..e7750f0801a 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/GrabbagImageSource.java
@@ -29,6 +29,7 @@ package org.mage.plugins.card.dl.sources;
import java.io.IOException;
import java.util.HashMap;
+import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
import org.mage.plugins.card.images.CardDownloadData;
@@ -1697,7 +1698,7 @@ public class GrabbagImageSource implements CardImageSource {
public void doPause(String httpImageUrl) {
if (!httpImageUrl.startsWith("/MTG")) {
try {
- Thread.sleep(2000);
+ TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException ex) {
}
}
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java
index 23b9180d414..47661ee8d41 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java
@@ -86,13 +86,14 @@ public class MythicspoilerComSource implements CardImageSource {
cardNameAliases.put("THS-soldierofpantheon", "soldierofthepantheon");
cardNameAliases.put("THS-vulpinegolaith", "vulpinegoliath");
cardNameAliases.put("ORI-kothopedhoarderofsouls", "kothophedsoulhoarder");
- cardNameAliases.put("BFZ-unisonstrike", "tandemtactics");
- cardNameAliases.put("BFZ-eldrazidevastator", "eldrazidevastator");
cardNameAliases.put("BFZ-kozliekschanneler", "kozilekschanneler");
cardNameAliases.put("OGW-wastes", "wastes1");
cardNameAliases.put("OGW-wastes2", "wastes2");
- cardNameAliases.put("AER-locketofmyths", "lifecraftersbestiary");
cardNameAliases.put("AER-aegisautomation", "aegisautomaton");
+ cardNameAliases.put("AKH-illusorywrappins", "illusorywrappings");
+ cardNameAliases.put("AKH-reducerumble", "reducerubble");
+ cardNameAliases.put("AKH-forsakethewordly", "forsaketheworldly");
+ cardNameAliases.put("AKH-kefnatsmonument", "kefnetsmonument");
cardNameAliasesStart = new HashMap<>();
HashSet names = new HashSet<>();
@@ -182,14 +183,9 @@ public class MythicspoilerComSource implements CardImageSource {
if (cardNameAliases.containsKey(cardSet + '-' + cardName)) {
cardName = cardNameAliases.get(cardSet + '-' + cardName);
} else if (cardName.endsWith("1") || cardName.endsWith("2") || cardName.endsWith("3") || cardName.endsWith("4") || cardName.endsWith("5")) {
- if (!cardName.startsWith("forest")
- && !cardName.startsWith("swamp")
- && !cardName.startsWith("mountain")
- && !cardName.startsWith("island")
- && !cardName.startsWith("plains")) {
-
- cardName = cardName.substring(0, cardName.length() - 1);
- }
+ cardName = cardName.substring(0, cardName.length() - 1);
+ } else if (cardName.endsWith("promo")) {
+ cardName = cardName.substring(0, cardName.length() - 5);
}
pageLinks.put(cardName, baseUrl + cardLink);
}
@@ -213,7 +209,8 @@ public class MythicspoilerComSource implements CardImageSource {
.replaceAll(" ", "")
.replaceAll("-", "")
.replaceAll("'", "")
- .replaceAll(",", "");
+ .replaceAll(",", "")
+ .replaceAll("/", "");
String link = setLinks.get(searchName);
return link;
}
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java
index 047bb90f240..d75337f6bb4 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/WizardCardsImageSource.java
@@ -24,8 +24,7 @@
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
-*/
-
+ */
package org.mage.plugins.card.dl.sources;
import java.io.BufferedReader;
@@ -41,6 +40,7 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
import java.util.prefs.Preferences;
import mage.client.MageFrame;
import mage.client.dialog.PreferencesDialog;
@@ -271,12 +271,12 @@ public class WizardCardsImageSource implements CardImageSource {
public String getNextHttpImageUrl() {
return null;
}
-
+
@Override
public String getFileForHttpImage(String httpImageUrl) {
return null;
}
-
+
private Map getSetLinks(String cardSet) {
ConcurrentHashMap setLinks = new ConcurrentHashMap<>();
ExecutorService executor = Executors.newFixedThreadPool(10);
@@ -289,7 +289,7 @@ public class WizardCardsImageSource implements CardImageSource {
int firstMultiverseIdLastPage = 0;
Pages:
while (page < 999) {
- String searchUrl = "http://gatherer.wizards.com/Pages/Search/Default.aspx?page=" + page +"&output=spoiler&method=visual&action=advanced&set=+[%22" + URLSetName + "%22]";
+ String searchUrl = "http://gatherer.wizards.com/Pages/Search/Default.aspx?page=" + page + "&output=spoiler&method=visual&action=advanced&set=+[%22" + URLSetName + "%22]";
Document doc = getDocument(searchUrl);
Elements cardsImages = doc.select("img[src^=../../Handlers/]");
if (cardsImages.isEmpty()) {
@@ -320,7 +320,7 @@ public class WizardCardsImageSource implements CardImageSource {
while (!executor.isTerminated()) {
try {
- Thread.sleep(1000);
+ TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException ie) {
}
}
@@ -339,7 +339,7 @@ public class WizardCardsImageSource implements CardImageSource {
int proxyPort = Integer.parseInt(prefs.get("proxyPort", "0"));
URL url = new URL(urlString);
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyServer, proxyPort));
- HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy);
+ HttpURLConnection uc = (HttpURLConnection) url.openConnection(proxy);
uc.connect();
@@ -359,7 +359,7 @@ public class WizardCardsImageSource implements CardImageSource {
Document landDoc = getDocument(urlLandDocument);
Elements variations = landDoc.select("a.variationlink");
Map links = new HashMap<>();
- if(!variations.isEmpty()) {
+ if (!variations.isEmpty()) {
int landNumber = 1;
for (Element variation : variations) {
Integer landMultiverseId = Integer.parseInt(variation.attr("onclick").replaceAll("[^\\d]", ""));
@@ -374,7 +374,7 @@ public class WizardCardsImageSource implements CardImageSource {
}
private static String generateLink(int landMultiverseId) {
- return "/Handlers/Image.ashx?multiverseid=" +landMultiverseId + "&type=card";
+ return "/Handlers/Image.ashx?multiverseid=" + landMultiverseId + "&type=card";
}
private int getLocalizedMultiverseId(String preferedLanguage, Integer multiverseId) throws IOException {
@@ -396,7 +396,7 @@ public class WizardCardsImageSource implements CardImageSource {
Document cardLanguagesDoc = getDocument(cardLanguagesUrl);
Elements languageTableRows = cardLanguagesDoc.select("tr.cardItem");
HashMap localizedIds = new HashMap<>();
- if(!languageTableRows.isEmpty()) {
+ if (!languageTableRows.isEmpty()) {
for (Element languageTableRow : languageTableRows) {
Elements languageTableColumns = languageTableRow.select("td");
Integer localizedId = Integer.parseInt(languageTableColumns.get(0).select("a").first().attr("href").replaceAll("[^\\d]", ""));
@@ -408,14 +408,14 @@ public class WizardCardsImageSource implements CardImageSource {
}
private String normalizeName(String name) {
- //Split card
- if(name.contains("//")) {
- name = name.substring(0, name.indexOf('(') - 1);
- }
- //Special timeshifted name
- if(name.startsWith("XX")) {
- name = name.substring(name.indexOf('(') + 1, name.length() - 1);
- }
+ //Split card
+ if (name.contains("//")) {
+ name = name.substring(0, name.indexOf('(') - 1);
+ }
+ //Special timeshifted name
+ if (name.startsWith("XX")) {
+ name = name.substring(name.indexOf('(') + 1, name.length() - 1);
+ }
return name.replace("\u2014", "-").replace("\u2019", "'")
.replace("\u00C6", "AE").replace("\u00E6", "ae")
.replace("\u00C3\u2020", "AE")
@@ -445,7 +445,7 @@ public class WizardCardsImageSource implements CardImageSource {
if (link == null) {
int length = collectorId.length();
- if (Character.isLetter(collectorId.charAt(length -1))) {
+ if (Character.isLetter(collectorId.charAt(length - 1))) {
length -= 1;
}
@@ -507,17 +507,17 @@ public class WizardCardsImageSource implements CardImageSource {
}
}
-
+
@Override
public int getTotalImages() {
return -1;
}
-
+
@Override
public boolean isTokenSource() {
return false;
}
-
+
@Override
public void doPause(String httpImageUrl) {
}
diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java
index 22d2d9f5ba9..e93a4f881d4 100644
--- a/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java
+++ b/Mage.Client/src/main/java/org/mage/plugins/card/images/DownloadPictures.java
@@ -1,5 +1,22 @@
package org.mage.plugins.card.images;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.net.*;
+import java.nio.file.AccessDeniedException;
+import java.util.*;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import javax.imageio.IIOImage;
+import javax.imageio.ImageIO;
+import javax.imageio.ImageWriteParam;
+import javax.imageio.ImageWriter;
+import javax.imageio.stream.FileImageOutputStream;
+import javax.swing.*;
import mage.cards.repository.CardInfo;
import mage.client.constants.Constants;
import mage.client.dialog.PreferencesDialog;
@@ -15,23 +32,6 @@ import org.mage.plugins.card.dl.sources.*;
import org.mage.plugins.card.properties.SettingsManager;
import org.mage.plugins.card.utils.CardImageUtils;
-import javax.imageio.IIOImage;
-import javax.imageio.ImageIO;
-import javax.imageio.ImageWriteParam;
-import javax.imageio.ImageWriter;
-import javax.imageio.stream.FileImageOutputStream;
-import javax.swing.*;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import java.io.*;
-import java.net.*;
-import java.nio.file.AccessDeniedException;
-import java.util.*;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicBoolean;
-
public class DownloadPictures extends DefaultBoundedRangeModel implements Runnable {
private static final Logger logger = Logger.getLogger(DownloadPictures.class);
@@ -316,7 +316,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
List cardsToDownload = Collections.synchronizedList(new ArrayList<>());
allCardsUrls.parallelStream().forEach(card -> {
TFile file = new TFile(CardImageUtils.generateImagePath(card));
- logger.debug(card.getName() + " (is_token=" + card.isToken() + "). Image is here:" + file.getAbsolutePath() + " (exists=" + file.exists() +')');
+ logger.debug(card.getName() + " (is_token=" + card.isToken() + "). Image is here:" + file.getAbsolutePath() + " (exists=" + file.exists() + ')');
if (!file.exists()) {
logger.debug("Missing: " + file.getAbsolutePath());
cardsToDownload.add(card);
@@ -345,9 +345,8 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
return list;
}
-
- try(InputStreamReader input = new InputStreamReader(in);
- BufferedReader reader = new BufferedReader(input)) {
+ try (InputStreamReader input = new InputStreamReader(in);
+ BufferedReader reader = new BufferedReader(input)) {
String line = reader.readLine();
while (line != null) {
@@ -486,7 +485,7 @@ public class DownloadPictures extends DefaultBoundedRangeModel implements Runnab
executor.shutdown();
while (!executor.isTerminated()) {
try {
- Thread.sleep(1000);
+ TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException ie) {
}
}
diff --git a/Mage.Client/src/main/resources/card-pictures-tok.txt b/Mage.Client/src/main/resources/card-pictures-tok.txt
index b242976bacb..68c2d0e5d27 100644
--- a/Mage.Client/src/main/resources/card-pictures-tok.txt
+++ b/Mage.Client/src/main/resources/card-pictures-tok.txt
@@ -1,3 +1,52 @@
+
+|Generate|TOK:AKH|Angel of Sanctions||
+|Generate|TOK:AKH|Anointer Priest||
+|Generate|TOK:AKH|Aven Initiate||
+|Generate|TOK:AKH|Aven Wind Guide||
+|Generate|TOK:AKH|Beast||
+|Generate|TOK:AKH|Cat||
+|Generate|TOK:AKH|Drake||
+|Generate|TOK:AKH|Glyph Keeper||
+|Generate|TOK:AKH|Heart-Piercer Manticore||
+|Generate|TOK:AKH|Hippo||
+|Generate|TOK:AKH|Honored Hydra||
+|Generate|TOK:AKH|Insect||
+|Generate|TOK:AKH|Labyrinth Guardian||
+|Generate|TOK:AKH|Oketra's Attendant||
+|Generate|TOK:AKH|Sacred Cat||
+|Generate|TOK:AKH|Snake||
+|Generate|TOK:AKH|Tah-Crop Skirmisher||
+|Generate|TOK:AKH|Temmet, Vizier of Naktamun||
+|Generate|TOK:AKH|Trueheart Duelist||
+|Generate|TOK:AKH|Unwavering Initiate||
+|Generate|TOK:AKH|Vizier of Many Faces||
+|Generate|TOK:AKH|Warrior||
+|Generate|TOK:AKH|Wurm||
+|Generate|TOK:AKH|Zombie||
+|Generate|EMBLEM!:AKH|Emblem Gideon||
+
+|Generate|TOK:MM3|Angel||
+|Generate|TOK:MM3|Beast|1|
+|Generate|TOK:MM3|Beast|2|
+|Generate|TOK:MM3|Bird||
+|Generate|TOK:MM3|Centaur||
+|Generate|TOK:MM3|Dragon||
+|Generate|TOK:MM3|Elemental||
+|Generate|TOK:MM3|Elephant||
+|Generate|TOK:MM3|Giant Warrior||
+|Generate|TOK:MM3|Goblin||
+|Generate|TOK:MM3|Goblin Warrior||
+|Generate|TOK:MM3|Golem||
+|Generate|TOK:MM3|Ooze||
+|Generate|TOK:MM3|Saproling||
+|Generate|TOK:MM3|Soldier|1|
+|Generate|TOK:MM3|Soldier|2|
+|Generate|TOK:MM3|Spider||
+|Generate|TOK:MM3|Spirit||
+|Generate|TOK:MM3|Wurm||
+|Generate|TOK:MM3|Zombie||
+|Generate|EMBLEM!:MM3|Emblem Domri||
+
|Generate|TOK:C16|Beast||
|Generate|TOK:C16|Bird|1|
|Generate|TOK:C16|Bird|2|
diff --git a/Mage.Client/src/main/resources/image.url.properties b/Mage.Client/src/main/resources/image.url.properties
index 2d32397f850..9f5e89bcde7 100644
--- a/Mage.Client/src/main/resources/image.url.properties
+++ b/Mage.Client/src/main/resources/image.url.properties
@@ -74,6 +74,6 @@ dd3evg=ddaevg
dd3gvl=ddagvl
dd3jvc=ddajvc
# Remove setname as soon as the images can be downloaded
-ignore.urls=TOK,PCA,DDS,ANB,AKH,HOU
+ignore.urls=TOK,PCA,ANB,HOU
# sets ordered by release time (newest goes first)
token.lookup.order=ANB,HOU,MM3,DDS,AKH,DD3DVD,DD3EVG,DD3GVL,DD3JVC,H09,AER,PCA,C16,V16,MPS,KLD,DDR,CN2,EMN,EMA,SOI,DDQ,CP,CMA,ARENA,SUS,APAC,EURO,UGIN,C15,OGW,EXP,DDP,BFZ,DRB,V09,V10,V11,V12,V13,V14,V15,TPR,MPRP,DD3,DDO,ORI,MM2,PTC,DTK,FRF,KTK,M15,VMA,CNS,JOU,BNG,THS,DDL,M14,MMA,DGM,GTC,RTR,M13,AVR,DDI,DKA,ISD,M12,NPH,MBS,SOM,M11,ROE,DDE,WWK,ZEN,M10,GVL,ARB,DVD,CFX,JVC,ALA,EVE,SHM,EVG,MOR,LRW,10E,CLS,CHK,GRC
\ No newline at end of file
diff --git a/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java b/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java
index 51d99cfe165..1974187c4d4 100644
--- a/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java
+++ b/Mage.Client/src/test/java/mage/client/game/MultiConnectTest.java
@@ -1,5 +1,8 @@
package mage.client.game;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import javax.swing.*;
import mage.client.components.MageUI;
import mage.interfaces.MageClient;
import mage.interfaces.callback.ClientCallback;
@@ -10,9 +13,6 @@ import mage.utils.MageVersion;
import org.apache.log4j.Logger;
import org.junit.Ignore;
-import javax.swing.*;
-import java.util.concurrent.CountDownLatch;
-
/**
* Test for emulating the connection from multi mage clients.
*
@@ -30,7 +30,7 @@ public class MultiConnectTest {
private static final CountDownLatch latch = new CountDownLatch(USER_CONNECT_COUNT);
- private static final MageVersion version = new MageVersion(MageVersion.MAGE_VERSION_MAJOR, MageVersion.MAGE_VERSION_MINOR, MageVersion.MAGE_VERSION_PATCH, MageVersion.MAGE_VERSION_MINOR_PATCH, MageVersion.MAGE_VERSION_INFO);
+ private static final MageVersion version = new MageVersion(MageVersion.MAGE_VERSION_MAJOR, MageVersion.MAGE_VERSION_MINOR, MageVersion.MAGE_VERSION_PATCH, MageVersion.MAGE_VERSION_MINOR_PATCH, MageVersion.MAGE_VERSION_INFO);
private static volatile int connected;
@@ -116,7 +116,7 @@ public class MultiConnectTest {
private void sleep(int ms) {
try {
- Thread.sleep(ms);
+ TimeUnit.MILLISECONDS.sleep(ms);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java b/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java
index f5dea6e8c51..e8ec74705c0 100644
--- a/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java
+++ b/Mage.Client/src/test/java/mage/client/game/StartMultiGamesTest.java
@@ -1,13 +1,13 @@
package mage.client.game;
+import java.util.concurrent.TimeUnit;
+import javax.swing.*;
import mage.client.MageFrame;
import mage.client.components.MageComponents;
import mage.client.components.MageUI;
import org.apache.log4j.Logger;
import org.junit.Ignore;
-import javax.swing.*;
-
/**
* @author ayratn
*/
@@ -68,7 +68,7 @@ public class StartMultiGamesTest {
private void sleep(int ms) {
try {
- Thread.sleep(ms);
+ TimeUnit.MILLISECONDS.sleep(ms);
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/Mage.Client/src/test/java/mage/client/util/CardHelperTest.java b/Mage.Client/src/test/java/mage/client/util/CardHelperTest.java
deleted file mode 100644
index 6e6a3b3be11..00000000000
--- a/Mage.Client/src/test/java/mage/client/util/CardHelperTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package mage.client.util;
-
-import mage.client.deckeditor.table.CardHelper;
-import mage.constants.CardType;
-import mage.view.CardView;
-import org.junit.Assert;
-import org.junit.Test;
-
-import static org.hamcrest.core.Is.is;
-
-/**
- * Created by IGOUDT on 3-3-2017.
- */
-public class CardHelperTest {
-
- @Test
- public void testCardTypeOrder() {
- CardView v = new CardView(true);
- v.getCardTypes().add(CardType.CREATURE);
- v.getCardTypes().add(CardType.ARTIFACT);
- String cardtypeText = CardHelper.getType(v);
- Assert.assertThat(cardtypeText, is("Artifact Creature"));
-
- }
-
-
-}
diff --git a/Mage.Common/pom.xml b/Mage.Common/pom.xml
index d7a8a3623be..6a63908dcd0 100644
--- a/Mage.Common/pom.xml
+++ b/Mage.Common/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-root
- 1.4.22
+ 1.4.23
mage-common
diff --git a/Mage.Common/src/mage/cards/MagePermanent.java b/Mage.Common/src/mage/cards/MagePermanent.java
index a209b5d36c6..acbcd5de07f 100644
--- a/Mage.Common/src/mage/cards/MagePermanent.java
+++ b/Mage.Common/src/mage/cards/MagePermanent.java
@@ -1,11 +1,13 @@
package mage.cards;
-import java.util.List;
import mage.view.PermanentView;
+import java.util.List;
+
public abstract class MagePermanent extends MageCard {
private static final long serialVersionUID = -3469258620601702171L;
public abstract List getLinks();
public abstract void update(PermanentView card);
public abstract PermanentView getOriginalPermanent();
+
}
diff --git a/Mage.Common/src/mage/interfaces/MageServer.java b/Mage.Common/src/mage/interfaces/MageServer.java
index bf144fa7150..2b505a128ad 100644
--- a/Mage.Common/src/mage/interfaces/MageServer.java
+++ b/Mage.Common/src/mage/interfaces/MageServer.java
@@ -27,10 +27,6 @@
*/
package mage.interfaces;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
-import java.util.UUID;
import mage.MageException;
import mage.cards.decks.DeckCardLists;
import mage.cards.repository.CardInfo;
@@ -40,15 +36,15 @@ import mage.constants.PlayerAction;
import mage.game.GameException;
import mage.game.match.MatchOptions;
import mage.game.tournament.TournamentOptions;
+import mage.players.PlayerType;
import mage.players.net.UserData;
import mage.utils.MageVersion;
-import mage.view.DraftPickView;
-import mage.view.GameView;
-import mage.view.MatchView;
-import mage.view.RoomUsersView;
-import mage.view.TableView;
-import mage.view.TournamentView;
-import mage.view.UserView;
+import mage.view.*;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.UUID;
/**
*
@@ -94,9 +90,9 @@ public interface MageServer {
TableView createTournamentTable(String sessionId, UUID roomId, TournamentOptions tournamentOptions) throws MageException;
- boolean joinTable(String sessionId, UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException;
+ boolean joinTable(String sessionId, UUID roomId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException;
- boolean joinTournamentTable(String sessionId, UUID roomId, UUID tableId, String name, String playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException;
+ boolean joinTournamentTable(String sessionId, UUID roomId, UUID tableId, String name, PlayerType playerType, int skill, DeckCardLists deckList, String password) throws MageException, GameException;
boolean submitDeck(String sessionId, UUID tableId, DeckCardLists deckList) throws MageException, GameException;
diff --git a/Mage.Common/src/mage/interfaces/ServerState.java b/Mage.Common/src/mage/interfaces/ServerState.java
index 8208b44f037..02f2c4a8d25 100644
--- a/Mage.Common/src/mage/interfaces/ServerState.java
+++ b/Mage.Common/src/mage/interfaces/ServerState.java
@@ -28,15 +28,15 @@
package mage.interfaces;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
+import mage.players.PlayerType;
import mage.utils.MageVersion;
import mage.view.GameTypeView;
import mage.view.TournamentTypeView;
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* @author BetaSteward_at_googlemail.com
*/
@@ -44,7 +44,7 @@ public class ServerState implements Serializable {
private final List gameTypes;
private final List tournamentTypes;
- private final String[] playerTypes;
+ private final PlayerType[] playerTypes;
private final String[] deckTypes;
private final String[] draftCubes;
private final boolean testMode;
@@ -53,7 +53,7 @@ public class ServerState implements Serializable {
private final long expansionsContentVersion;
public ServerState(List gameTypes, List tournamentTypes,
- String[] playerTypes, String[] deckTypes, String[] draftCubes, boolean testMode,
+ PlayerType[] playerTypes, String[] deckTypes, String[] draftCubes, boolean testMode,
MageVersion version, long cardsContentVersion, long expansionsContentVersion) {
this.gameTypes = gameTypes;
this.tournamentTypes = tournamentTypes;
@@ -81,7 +81,7 @@ public class ServerState implements Serializable {
return tournamentTypes;
}
- public String[] getPlayerTypes() {
+ public PlayerType[] getPlayerTypes() {
return playerTypes;
}
diff --git a/Mage.Common/src/mage/interfaces/callback/ClientCallback.java b/Mage.Common/src/mage/interfaces/callback/ClientCallback.java
index 366045102f9..868d70e065d 100644
--- a/Mage.Common/src/mage/interfaces/callback/ClientCallback.java
+++ b/Mage.Common/src/mage/interfaces/callback/ClientCallback.java
@@ -39,18 +39,18 @@ public class ClientCallback implements Serializable {
private UUID objectId;
private Object data;
- private String method;
+ private ClientCallbackMethod method;
private int messageId;
public ClientCallback() {}
- public ClientCallback(String method, UUID objectId, Object data) {
+ public ClientCallback(ClientCallbackMethod method, UUID objectId, Object data) {
this.method = method;
this.objectId = objectId;
this.data = data;
}
- public ClientCallback(String method, UUID objectId) {
+ public ClientCallback(ClientCallbackMethod method, UUID objectId) {
this(method, objectId, null);
}
@@ -75,11 +75,11 @@ public class ClientCallback implements Serializable {
this.data = data;
}
- public String getMethod() {
+ public ClientCallbackMethod getMethod() {
return method;
}
- public void setMethod(String method) {
+ public void setMethod(ClientCallbackMethod method) {
this.method = method;
}
diff --git a/Mage.Common/src/mage/interfaces/callback/ClientCallbackMethod.java b/Mage.Common/src/mage/interfaces/callback/ClientCallbackMethod.java
new file mode 100644
index 00000000000..9e3180f3a8b
--- /dev/null
+++ b/Mage.Common/src/mage/interfaces/callback/ClientCallbackMethod.java
@@ -0,0 +1,46 @@
+package mage.interfaces.callback;
+
+/**
+ * Created by IGOUDT on 4-4-2017.
+ */
+public enum ClientCallbackMethod {
+
+ CHATMESSAGE("chatMessage"),
+ TOURNAMENT_INIT("tournamentInit"),
+ TOURNAMENT_UPDATE("tournamentUpdate"),
+ TOURNAMENT_OVER("tournamentOver"),
+ JOINED_TABLE("joinedTable"),
+ START_DRAFT("startDraft"),
+ START_TOURNAMENT("startTournament"),
+ SIDEBOARD("sideboard"),
+ CONSTRUCT("construct"),
+ SHOW_USERMESSAGE("showUserMessage"),
+ WATCHGAME("watchGame"),
+ REPLAY_GAME("replayGame"),
+ START_GAME("startGame"),
+ SHOW_TOURNAMENT("showTournament"),
+ SHOW_GAME_END_DIALOG("showGameEndDialog"),
+ SERVER_MESSAGE("serverMessage"),
+ GAME_INIT("gameInit"),
+ GAME_OVER("gameOver"),
+ GAME_INFORM("gameInform"),
+ GAME_INFORM_PERSONAL("gameInformPersonal"),
+ GAME_ERROR("gameError"),
+ GAME_UPDATE("gameUpdate"),
+ DRAFT_OVER("draftOver"),
+ REPLAY_DONE("replayDone"),
+ USER_REQUEST_DIALOG("userRequestDialog"),
+ REPLAY_UPDATE("replayUpdate"),
+ REPLAY_INIT("replayInit"),
+ END_GAME_INFO("endGameInfo"),
+ GAME_TARGET("gameTarget"),
+ GAME_CHOOSE_ABILITY("gameChooseAbility"),
+ GAME_CHOOSE_PILE("gameChoosePile"),
+ GAME_CHOOSE_CHOICE("gameChooseChoice"), GAME_ASK("gameAsk"), GAME_SELECT("gameSelect"), GAME_PLAY_MANA("gamePlayMana"), GAME_PLAY_XMANA("gamePlayXMana"), GAME_GET_AMOUNT("gameSelectAmount"), DRAFT_INIT("draftInit"), DRAFT_INFORM("draftInform"), DRAFT_PICK("draftPick"), DRAFT_UPDATE("draftUpdate");
+
+ String value;
+
+ ClientCallbackMethod(String value){
+ this.value = value;
+ }
+}
diff --git a/Mage.Common/src/mage/remote/Connection.java b/Mage.Common/src/mage/remote/Connection.java
index a5cac723360..cfd27d18121 100644
--- a/Mage.Common/src/mage/remote/Connection.java
+++ b/Mage.Common/src/mage/remote/Connection.java
@@ -56,6 +56,7 @@ public class Connection {
private int clientCardDatabaseVersion;
private boolean forceDBComparison;
private String userIdStr;
+ private int socketWriteTimeout;
private UserData userData;
@@ -76,6 +77,7 @@ public class Connection {
public Connection(String parameter) {
this.parameter = parameter;
+ socketWriteTimeout = 10000;
}
@Override
@@ -258,6 +260,24 @@ public class Connection {
return null;
}
+ public static String getMAC() throws SocketException {
+ StringBuilder allMACs = new StringBuilder();
+ for (Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); interfaces.hasMoreElements();) {
+ NetworkInterface iface = interfaces.nextElement();
+ byte[] mac = iface.getHardwareAddress();
+
+ if (mac != null) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < mac.length; i++) {
+ sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
+ }
+ sb.append(';');
+ allMACs.append(sb.toString());
+ }
+ }
+ return allMACs.toString();
+ }
+
public void setUserData(UserData userData) {
this.userData = userData;
}
@@ -273,4 +293,8 @@ public class Connection {
public void setForceDBComparison(boolean forceDBComparison) {
this.forceDBComparison = forceDBComparison;
}
+
+ public int getSocketWriteTimeout() {
+ return socketWriteTimeout;
+ }
}
diff --git a/Mage.Common/src/mage/remote/SessionImpl.java b/Mage.Common/src/mage/remote/SessionImpl.java
index 46d6cc8aa40..90e68afb91c 100644
--- a/Mage.Common/src/mage/remote/SessionImpl.java
+++ b/Mage.Common/src/mage/remote/SessionImpl.java
@@ -32,8 +32,7 @@ import java.lang.reflect.UndeclaredThrowableException;
import java.net.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
-import javax.swing.JOptionPane;
-
+import javax.swing.*;
import mage.MageException;
import mage.cards.decks.DeckCardLists;
import mage.cards.decks.InvalidDeckException;
@@ -50,6 +49,7 @@ import mage.interfaces.MageClient;
import mage.interfaces.MageServer;
import mage.interfaces.ServerState;
import mage.interfaces.callback.ClientCallback;
+import mage.players.PlayerType;
import mage.players.net.UserData;
import mage.utils.CompressUtil;
import mage.view.*;
@@ -219,34 +219,35 @@ public class SessionImpl implements Session {
public synchronized boolean connect(final Connection connection) {
return establishJBossRemotingConnection(connection)
&& handleRemotingTaskExceptions(new RemotingTask() {
- @Override
- public boolean run() throws Throwable {
- logger.info("Trying to log-in as " + getUserName() + " to XMAGE server at " + connection.getHost() + ':' + connection.getPort());
- boolean registerResult;
- if (connection.getAdminPassword() == null) {
- // for backward compatibility. don't remove twice call - first one does nothing but for version checking
- registerResult = server.connectUser(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion(), connection.getUserIdStr());
- if (registerResult) {
- server.setUserData(connection.getUsername(), sessionId, connection.getUserData(), client.getVersion().toString(), connection.getUserIdStr());
+ @Override
+ public boolean run() throws Throwable {
+ logger.info("Trying to log-in as " + getUserName() + " to XMAGE server at " + connection.getHost() + ':' + connection.getPort());
+ boolean registerResult;
+ if (connection.getAdminPassword() == null) {
+ // for backward compatibility. don't remove twice call - first one does nothing but for version checking
+ registerResult = server.connectUser(connection.getUsername(), connection.getPassword(), sessionId, client.getVersion(), connection.getUserIdStr());
+ if (registerResult) {
+ server.setUserData(connection.getUsername(), sessionId, connection.getUserData(), client.getVersion().toString(), connection.getUserIdStr());
+ }
+ } else {
+ registerResult = server.connectAdmin(connection.getAdminPassword(), sessionId, client.getVersion());
+ }
+ if (registerResult) {
+ serverState = server.getServerState();
+ if (!connection.getUsername().equals("Admin")) {
+ updateDatabase(connection.isForceDBComparison(), serverState);
+ }
+ logger.info("Logged-in as " + getUserName() + " to MAGE server at " + connection.getHost() + ':' + connection.getPort());
+ client.connected(getUserName() + '@' + connection.getHost() + ':' + connection.getPort() + ' ');
+ return true;
+ }
+ disconnect(false);
+ return false;
}
- } else {
- registerResult = server.connectAdmin(connection.getAdminPassword(), sessionId, client.getVersion());
- }
- if (registerResult) {
- serverState = server.getServerState();
- if (!connection.getUsername().equals("Admin")) {
- updateDatabase(connection.isForceDBComparison(), serverState);
- }
- logger.info("Logged-in as " + getUserName() + " to MAGE server at " + connection.getHost() + ':' + connection.getPort());
- client.connected(getUserName() + '@' + connection.getHost() + ':' + connection.getPort() + ' ');
- return true;
- }
- disconnect(false);
- return false;
- }
- });
+ });
}
+ @Override
public Optional getServerHostname() {
return isConnected() ? Optional.of(connection.getHost()) : Optional.empty();
}
@@ -304,14 +305,14 @@ public class SessionImpl implements Session {
to a value greater than 1, an invocation interrupted by a write timeout can be retried.
Note. The write timeout facility applies to writing of both invocations and responses. It applies to push callbacks as well.
*/
- metadata.put(SocketWrapper.WRITE_TIMEOUT, "2000");
+ metadata.put(SocketWrapper.WRITE_TIMEOUT, String.valueOf(connection.getSocketWriteTimeout()));
metadata.put("generalizeSocketException", "true");
server = (MageServer) TransporterClient.createTransporterClient(clientLocator.getLocatorURI(), MageServer.class, metadata);
// http://docs.jboss.org/jbossremoting/docs/guide/2.5/html_single/#d0e1057
Map clientMetadata = new HashMap<>();
- clientMetadata.put(SocketWrapper.WRITE_TIMEOUT, "2000");
+ clientMetadata.put(SocketWrapper.WRITE_TIMEOUT, String.valueOf(connection.getSocketWriteTimeout()));
/* generalizeSocketException
* If set to false, a failed invocation will be retried in the case of
* SocketExceptions. If set to true, a failed invocation will be retried in the case of
@@ -472,7 +473,7 @@ public class SessionImpl implements Session {
/**
* @param askForReconnect - true = connection was lost because of error and
- * ask the user if he want to try to reconnect
+ * ask the user if he want to try to reconnect
*/
@Override
public synchronized void disconnect(boolean askForReconnect) {
@@ -550,7 +551,7 @@ public class SessionImpl implements Session {
}
@Override
- public String[] getPlayerTypes() {
+ public PlayerType[] getPlayerTypes() {
return serverState.getPlayerTypes();
}
@@ -680,7 +681,7 @@ public class SessionImpl implements Session {
}
@Override
- public boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password) {
+ public boolean joinTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password) {
try {
if (isConnected()) {
// Workaround to fix Can't join table problem
@@ -703,7 +704,7 @@ public class SessionImpl implements Session {
}
@Override
- public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password) {
+ public boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password) {
try {
if (isConnected()) {
// Workaround to fix Can't join table problem
@@ -966,7 +967,6 @@ public class SessionImpl implements Session {
return false;
}
-
@Override
public boolean joinGame(UUID gameId) {
try {
diff --git a/Mage.Common/src/mage/remote/interfaces/GameTypes.java b/Mage.Common/src/mage/remote/interfaces/GameTypes.java
index d1845d7b386..dc3c90f3502 100644
--- a/Mage.Common/src/mage/remote/interfaces/GameTypes.java
+++ b/Mage.Common/src/mage/remote/interfaces/GameTypes.java
@@ -28,6 +28,8 @@
package mage.remote.interfaces;
import java.util.List;
+
+import mage.players.PlayerType;
import mage.view.GameTypeView;
import mage.view.TournamentTypeView;
@@ -36,7 +38,7 @@ import mage.view.TournamentTypeView;
*/
public interface GameTypes {
- String[] getPlayerTypes();
+ PlayerType[] getPlayerTypes();
List getGameTypes();
List getTournamentGameTypes();
diff --git a/Mage.Common/src/mage/remote/interfaces/PlayerActions.java b/Mage.Common/src/mage/remote/interfaces/PlayerActions.java
index dd80ae37b6b..72818ca2f3f 100644
--- a/Mage.Common/src/mage/remote/interfaces/PlayerActions.java
+++ b/Mage.Common/src/mage/remote/interfaces/PlayerActions.java
@@ -30,6 +30,7 @@ package mage.remote.interfaces;
import mage.cards.decks.DeckCardLists;
import mage.game.match.MatchOptions;
import mage.game.tournament.TournamentOptions;
+import mage.players.PlayerType;
import mage.remote.MageRemoteException;
import mage.view.TableView;
import mage.view.TournamentView;
@@ -64,13 +65,13 @@ public interface PlayerActions {
// boolean startChallenge(UUID roomId, UUID tableId, UUID challengeId);
- boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password);
+ boolean joinTournamentTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password);
boolean watchTable(UUID roomId, UUID tableId);
boolean watchTournamentTable(UUID tableId);
- boolean joinTable(UUID roomId, UUID tableId, String playerName, String playerType, int skill, DeckCardLists deckList, String password);
+ boolean joinTable(UUID roomId, UUID tableId, String playerName, PlayerType playerType, int skill, DeckCardLists deckList, String password);
Optional getTable(UUID roomId, UUID tableId);
diff --git a/Mage.Common/src/mage/utils/CardUtil.java b/Mage.Common/src/mage/utils/CardUtil.java
index 258393b04ef..da99b4de7fc 100644
--- a/Mage.Common/src/mage/utils/CardUtil.java
+++ b/Mage.Common/src/mage/utils/CardUtil.java
@@ -1,12 +1,12 @@
package mage.utils;
-import java.util.List;
import mage.ObjectColor;
-import mage.cards.Card;
import mage.cards.MagePermanent;
import mage.constants.CardType;
import mage.view.CardView;
+import java.util.List;
+
/**
* Utility class for {@link CardView}
*
@@ -21,17 +21,8 @@ public final class CardUtil {
private static final String regexGreen = ".*\\x7b.{0,2}G.{0,2}\\x7d.*";
private static final String regexWhite = ".*\\x7b.{0,2}W.{0,2}\\x7d.*";
- public static boolean isCreature(CardView card) {
- return is(card, CardType.CREATURE);
- }
- public static boolean isPlaneswalker(CardView card) {
- return is(card, CardType.PLANESWALKER);
- }
- public static boolean isLand(CardView card) {
- return is(card, CardType.LAND);
- }
public static boolean isCreature(MagePermanent card) {
return is(card.getOriginal(), CardType.CREATURE);
@@ -49,14 +40,6 @@ public final class CardUtil {
return card.getCardTypes().contains(type);
}
- public static boolean isBasicLand(Card card) {
- return card.getSupertype().contains("Basic");
- }
-
- public static boolean isLand(Card card) {
- return card.getCardType().contains(CardType.LAND);
- }
-
public static int getColorIdentitySortValue(List manaCost, ObjectColor originalColor, List rules) {
ObjectColor color = new ObjectColor(originalColor);
for (String rule : rules) {
diff --git a/Mage.Common/src/mage/utils/DeckBuilder.java b/Mage.Common/src/mage/utils/DeckBuilder.java
index 55760f7d28d..19922120b3c 100644
--- a/Mage.Common/src/mage/utils/DeckBuilder.java
+++ b/Mage.Common/src/mage/utils/DeckBuilder.java
@@ -1,21 +1,14 @@
package mage.utils;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import mage.Mana;
import mage.cards.Card;
import mage.cards.decks.Deck;
-import mage.constants.CardType;
import mage.constants.ColoredManaSymbol;
import mage.interfaces.rate.RateCallback;
import mage.util.RandomUtil;
+import java.util.*;
+
/**
* Builds deck from provided card pool.
*
@@ -246,13 +239,13 @@ public final class DeckBuilder {
this.card = card;
int type;
- if (card.getCardType().contains(CardType.CREATURE)) {
+ if (card.isCreature()) {
type = 10;
} else if (card.getSubtype(null).contains("Equipment")) {
type = 8;
} else if (card.getSubtype(null).contains("Aura")) {
type = 5;
- } else if (card.getCardType().contains(CardType.INSTANT)) {
+ } else if (card.isInstant()) {
type = 7;
} else {
type = 6;
diff --git a/Mage.Common/src/mage/utils/MageVersion.java b/Mage.Common/src/mage/utils/MageVersion.java
index 3d065060b60..35385b2faeb 100644
--- a/Mage.Common/src/mage/utils/MageVersion.java
+++ b/Mage.Common/src/mage/utils/MageVersion.java
@@ -40,8 +40,8 @@ public class MageVersion implements Serializable, Comparable {
*/
public final static int MAGE_VERSION_MAJOR = 1;
public final static int MAGE_VERSION_MINOR = 4;
- public final static int MAGE_VERSION_PATCH = 22;
- public final static String MAGE_VERSION_MINOR_PATCH = "V0";
+ public final static int MAGE_VERSION_PATCH = 23;
+ public final static String MAGE_VERSION_MINOR_PATCH = "V1";
public final static String MAGE_VERSION_INFO = "";
private final int major;
diff --git a/Mage.Common/src/mage/view/AbilityView.java b/Mage.Common/src/mage/view/AbilityView.java
index 2c6b61bfe83..c95d00de745 100644
--- a/Mage.Common/src/mage/view/AbilityView.java
+++ b/Mage.Common/src/mage/view/AbilityView.java
@@ -31,6 +31,7 @@ package mage.view;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.constants.CardType;
+import mage.constants.SuperType;
import java.util.ArrayList;
import java.util.EnumSet;
@@ -57,7 +58,7 @@ public class AbilityView extends CardView {
this.loyalty = "";
this.cardTypes = EnumSet.noneOf(CardType.class);
this.subTypes = new ArrayList<>();
- this.superTypes = new ArrayList<>();
+ this.superTypes =EnumSet.noneOf(SuperType.class);
this.color = new ObjectColor();
this.manaCost = ability.getManaCosts().getSymbols();
}
diff --git a/Mage.Common/src/mage/view/CardView.java b/Mage.Common/src/mage/view/CardView.java
index 82d6c397c55..8b567d89da8 100644
--- a/Mage.Common/src/mage/view/CardView.java
+++ b/Mage.Common/src/mage/view/CardView.java
@@ -28,20 +28,16 @@
package mage.view;
import java.util.*;
-
import mage.MageObject;
import mage.ObjectColor;
+import mage.abilities.Abilities;
+import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.SpellAbility;
import mage.abilities.costs.mana.ManaCosts;
-import mage.cards.Card;
-import mage.cards.FrameStyle;
-import mage.cards.SplitCard;
-import mage.constants.AbilityType;
-import mage.constants.CardType;
-import mage.constants.MageObjectType;
-import mage.constants.Rarity;
-import mage.constants.Zone;
+import mage.abilities.keyword.AftermathAbility;
+import mage.cards.*;
+import mage.constants.*;
import mage.counters.Counter;
import mage.counters.CounterType;
import mage.designations.Designation;
@@ -72,7 +68,7 @@ public class CardView extends SimpleCardView {
protected String startingLoyalty;
protected EnumSet cardTypes;
protected List subTypes;
- protected List superTypes;
+ protected EnumSet superTypes;
protected ObjectColor color;
protected ObjectColor frameColor;
protected FrameStyle frameStyle;
@@ -103,9 +99,13 @@ public class CardView extends SimpleCardView {
protected String leftSplitName;
protected ManaCosts leftSplitCosts;
protected List leftSplitRules;
+ protected String leftSplitTypeLine;
protected String rightSplitName;
protected ManaCosts rightSplitCosts;
protected List rightSplitRules;
+ protected String rightSplitTypeLine;
+
+ protected ArtRect artRect = ArtRect.NORMAL;
protected List targets;
@@ -183,14 +183,17 @@ public class CardView extends SimpleCardView {
this.alternateName = cardView.alternateName;
this.originalName = cardView.originalName;
+ this.artRect = cardView.artRect;
this.isSplitCard = cardView.isSplitCard;
this.leftSplitName = cardView.leftSplitName;
this.leftSplitCosts = cardView.leftSplitCosts;
this.leftSplitRules = null;
+ this.leftSplitTypeLine = cardView.leftSplitTypeLine;
this.rightSplitName = cardView.rightSplitName;
this.rightSplitCosts = cardView.rightSplitCosts;
this.rightSplitRules = null;
+ this.rightSplitTypeLine = cardView.rightSplitTypeLine;
this.targets = null;
@@ -212,7 +215,6 @@ public class CardView extends SimpleCardView {
}
/**
- *
* @param card
* @param game
* @param controlled is the card view created for the card controller - used
@@ -223,8 +225,24 @@ public class CardView extends SimpleCardView {
this(card, game, controlled, false, false);
}
+ private static String getCardTypeLine(Game game, Card card) {
+ StringBuilder sbType = new StringBuilder();
+ for (SuperType superType : card.getSuperType()) {
+ sbType.append(superType).append(' ');
+ }
+ for (CardType cardType : card.getCardType()) {
+ sbType.append(cardType.toString()).append(' ');
+ }
+ if (!card.getSubtype(game).isEmpty()) {
+ sbType.append("- ");
+ for (String subType : card.getSubtype(game)) {
+ sbType.append(subType).append(' ');
+ }
+ }
+ return sbType.toString();
+ }
+
/**
- *
* @param card
* @param game
* @param controlled is the card view created for the card controller - used
@@ -284,13 +302,17 @@ public class CardView extends SimpleCardView {
SplitCard splitCard = null;
if (card.isSplitCard()) {
splitCard = (SplitCard) card;
- rotate = true;
+ rotate = (((SplitCard) card).getSpellAbility().getSpellAbilityType()) != SpellAbilityType.SPLIT_AFTERMATH;
} else if (card instanceof Spell) {
switch (((Spell) card).getSpellAbility().getSpellAbilityType()) {
case SPLIT_FUSED:
splitCard = (SplitCard) ((Spell) card).getCard();
rotate = true;
break;
+ case SPLIT_AFTERMATH:
+ splitCard = (SplitCard) ((Spell) card).getCard();
+ rotate = false;
+ break;
case SPLIT_LEFT:
case SPLIT_RIGHT:
rotate = true;
@@ -302,9 +324,11 @@ public class CardView extends SimpleCardView {
leftSplitName = splitCard.getLeftHalfCard().getName();
leftSplitCosts = splitCard.getLeftHalfCard().getManaCost();
leftSplitRules = splitCard.getLeftHalfCard().getRules(game);
+ leftSplitTypeLine = getCardTypeLine(game, splitCard.getLeftHalfCard());
rightSplitName = splitCard.getRightHalfCard().getName();
rightSplitCosts = splitCard.getRightHalfCard().getManaCost();
rightSplitRules = splitCard.getRightHalfCard().getRules(game);
+ rightSplitTypeLine = getCardTypeLine(game, splitCard.getRightHalfCard());
}
this.name = card.getImageName();
@@ -349,7 +373,7 @@ public class CardView extends SimpleCardView {
this.toughness = Integer.toString(card.getToughness().getValue());
this.cardTypes = card.getCardType();
this.subTypes = card.getSubtype(game);
- this.superTypes = card.getSupertype();
+ this.superTypes = card.getSuperType();
this.color = card.getColor(game);
this.transformable = card.isTransformable();
this.flipCard = card.isFlipCard();
@@ -401,6 +425,31 @@ public class CardView extends SimpleCardView {
}
}
}
+
+ // Determine what part of the art to slice out for spells on the stack which originate
+ // from a split, fuse, or aftermath split card.
+ SpellAbilityType ty = spell.getSpellAbility().getSpellAbilityType();
+ if (ty == SpellAbilityType.SPLIT_RIGHT || ty == SpellAbilityType.SPLIT_LEFT || ty == SpellAbilityType.SPLIT_FUSED) {
+ // Needs a special art rect
+ if (ty == SpellAbilityType.SPLIT_FUSED) {
+ artRect = ArtRect.SPLIT_FUSED;
+ } else if (spell.getCard() != null) {
+ SplitCard wholeCard = ((SplitCardHalf) spell.getCard()).getParentCard();
+ Abilities aftermathHalfAbilities = wholeCard.getRightHalfCard().getAbilities();
+ if (aftermathHalfAbilities.stream().anyMatch(ability -> ability instanceof AftermathAbility)) {
+ if (ty == SpellAbilityType.SPLIT_RIGHT) {
+ artRect = ArtRect.AFTERMATH_BOTTOM;
+ } else {
+ artRect = ArtRect.AFTERMATH_TOP;
+ }
+ } else if (ty == SpellAbilityType.SPLIT_RIGHT) {
+ artRect = ArtRect.SPLIT_RIGHT;
+ } else {
+ artRect = ArtRect.SPLIT_LEFT;
+ }
+ }
+ }
+
// show for modal spell, which mode was choosen
if (spell.getSpellAbility().isModal()) {
for (UUID modeId : spell.getSpellAbility().getModes().getSelectedModes()) {
@@ -436,7 +485,7 @@ public class CardView extends SimpleCardView {
}
this.cardTypes = object.getCardType();
this.subTypes = object.getSubtype(null);
- this.superTypes = object.getSupertype();
+ this.superTypes = object.getSuperType();
this.color = object.getColor(null);
this.manaCost = object.getManaCost().getSymbols();
this.convertedManaCost = object.getManaCost().convertedManaCost();
@@ -520,7 +569,7 @@ public class CardView extends SimpleCardView {
this.startingLoyalty = "";
this.cardTypes = EnumSet.noneOf(CardType.class);
this.subTypes = new ArrayList<>();
- this.superTypes = new ArrayList<>();
+ this.superTypes = EnumSet.noneOf(SuperType.class);
this.color = new ObjectColor();
this.frameColor = new ObjectColor();
this.frameStyle = FrameStyle.M15_NORMAL;
@@ -567,7 +616,7 @@ public class CardView extends SimpleCardView {
this.startingLoyalty = "";
this.cardTypes = token.getCardType();
this.subTypes = token.getSubtype(null);
- this.superTypes = token.getSupertype();
+ this.superTypes = token.getSuperType();
this.color = token.getColor(null);
this.frameColor = token.getFrameColor(null);
this.frameStyle = token.getFrameStyle();
@@ -647,7 +696,7 @@ public class CardView extends SimpleCardView {
return subTypes;
}
- public List getSuperTypes() {
+ public EnumSet getSuperTypes() {
return superTypes;
}
@@ -785,6 +834,10 @@ public class CardView extends SimpleCardView {
return leftSplitRules;
}
+ public String getLeftSplitTypeLine() {
+ return leftSplitTypeLine;
+ }
+
public String getRightSplitName() {
return rightSplitName;
}
@@ -797,6 +850,14 @@ public class CardView extends SimpleCardView {
return rightSplitRules;
}
+ public String getRightSplitTypeLine() {
+ return rightSplitTypeLine;
+ }
+
+ public ArtRect getArtRect() {
+ return artRect;
+ }
+
public CardView getSecondCardFace() {
return this.secondCardFace;
}
@@ -893,4 +954,78 @@ public class CardView extends SimpleCardView {
this.canAttack = canAttack;
}
+ public boolean isCreature() {
+ return cardTypes.contains(CardType.CREATURE);
+ }
+
+ public boolean isPlanesWalker() {
+ return cardTypes.contains(CardType.PLANESWALKER);
+ }
+
+ public String getColorText() {
+ if (getColor().getColorCount() == 0) {
+ return "Colorless";
+ } else if (getColor().getColorCount() > 1) {
+ return "Gold";
+ } else if (getColor().isBlack()) {
+ return "Black";
+ } else if (getColor().isBlue()) {
+ return "Blue";
+ } else if (getColor().isWhite()) {
+ return "White";
+ } else if (getColor().isGreen()) {
+ return "Green";
+ } else if (getColor().isRed()) {
+ return "Red";
+ }
+ return "";
+ }
+
+ public String getTypeText() {
+ StringBuilder type = new StringBuilder();
+ for (SuperType superType : getSuperTypes()) {
+ type.append(superType.toString());
+ type.append(' ');
+ }
+ for (CardType cardType : getCardTypes()) {
+ type.append(cardType.toString());
+ type.append(' ');
+ }
+ if (!getSubTypes().isEmpty()) {
+ type.append("- ");
+ for (String subType : getSubTypes()) {
+ type.append(subType);
+ type.append(' ');
+ }
+ }
+ if (type.length() > 0) {
+ // remove trailing space
+ type.deleteCharAt(type.length() - 1);
+ }
+ return type.toString();
+ }
+
+ public boolean isLand() {
+ return cardTypes.contains(CardType.LAND);
+ }
+
+ public boolean isInstant() {
+ return cardTypes.contains(CardType.INSTANT);
+ }
+
+ public boolean isSorcery() {
+ return cardTypes.contains(CardType.SORCERY);
+ }
+
+ public boolean isEnchantment() {
+ return cardTypes.contains(CardType.ENCHANTMENT);
+ }
+
+ public boolean isArtifact() {
+ return cardTypes.contains(CardType.ARTIFACT);
+ }
+
+ public boolean isTribal() {
+ return cardTypes.contains(CardType.TRIBAL);
+ }
}
diff --git a/Mage.Common/src/mage/view/SeatView.java b/Mage.Common/src/mage/view/SeatView.java
index dff17d5e08c..a5e83fd580a 100644
--- a/Mage.Common/src/mage/view/SeatView.java
+++ b/Mage.Common/src/mage/view/SeatView.java
@@ -27,10 +27,12 @@
*/
package mage.view;
+import mage.game.Seat;
+import mage.players.PlayerType;
+import mage.players.net.UserData;
+
import java.io.Serializable;
import java.util.UUID;
-import mage.game.Seat;
-import mage.players.net.UserData;
/**
*
@@ -43,7 +45,7 @@ public class SeatView implements Serializable {
private final String flagName;
private UUID playerId;
private final String playerName;
- private final String playerType;
+ private final PlayerType playerType;
private final String history;
private final int generalRating;
private final int constructedRating;
@@ -86,7 +88,7 @@ public class SeatView implements Serializable {
return playerName;
}
- public String getPlayerType() {
+ public PlayerType getPlayerType() {
return playerType;
}
diff --git a/Mage.Common/src/mage/view/StackAbilityView.java b/Mage.Common/src/mage/view/StackAbilityView.java
index a34de5abf5b..92cbc8b6c51 100644
--- a/Mage.Common/src/mage/view/StackAbilityView.java
+++ b/Mage.Common/src/mage/view/StackAbilityView.java
@@ -65,12 +65,12 @@ public class StackAbilityView extends CardView {
this.cardTypes = ability.getCardType();
this.subTypes = ability.getSubtype(game);
- this.superTypes = ability.getSupertype();
+ this.superTypes = ability.getSuperType();
this.color = ability.getColor(game);
this.manaCost = ability.getManaCost().getSymbols();
this.cardTypes = ability.getCardType();
this.subTypes = ability.getSubtype(game);
- this.superTypes = ability.getSupertype();
+ this.superTypes = ability.getSuperType();
this.color = ability.getColor(game);
this.manaCost = ability.getManaCost().getSymbols();
this.power = ability.getPower().toString();
diff --git a/Mage.Plugins/Mage.Counter.Plugin/pom.xml b/Mage.Plugins/Mage.Counter.Plugin/pom.xml
index ce49c32ce21..ee30c83624d 100644
--- a/Mage.Plugins/Mage.Counter.Plugin/pom.xml
+++ b/Mage.Plugins/Mage.Counter.Plugin/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-plugins
- 1.4.22
+ 1.4.23
mage-counter-plugin
diff --git a/Mage.Plugins/pom.xml b/Mage.Plugins/pom.xml
index 2a68bba9ff1..c9e95ef2a7e 100644
--- a/Mage.Plugins/pom.xml
+++ b/Mage.Plugins/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-root
- 1.4.22
+ 1.4.23
mage-plugins
diff --git a/Mage.Server.Console/pom.xml b/Mage.Server.Console/pom.xml
index 25338d9613b..825e53abe0b 100644
--- a/Mage.Server.Console/pom.xml
+++ b/Mage.Server.Console/pom.xml
@@ -6,7 +6,7 @@
org.mage
mage-root
- 1.4.22
+ 1.4.23
org.mage
diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml b/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml
index 62f28f4ed22..f07ae6dc47d 100644
--- a/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml
+++ b/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-deck-constructed
diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java
index fbc137c0913..23e6ee2ec1d 100644
--- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java
+++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java
@@ -27,11 +27,6 @@
*/
package mage.deck;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.CanBeYourCommanderAbility;
@@ -42,11 +37,12 @@ import mage.cards.ExpansionSet;
import mage.cards.Sets;
import mage.cards.decks.Constructed;
import mage.cards.decks.Deck;
-import mage.constants.CardType;
import mage.constants.SetType;
import mage.filter.FilterMana;
import mage.util.CardUtil;
+import java.util.*;
+
/**
*
* @author Plopman
@@ -146,8 +142,8 @@ public class Commander extends Constructed {
invalid.put("Commander", "Commander banned (" + commander.getName() + ')');
valid = false;
}
- if ((!commander.getCardType().contains(CardType.CREATURE) || !commander.getSupertype().contains("Legendary"))
- && (!commander.getCardType().contains(CardType.PLANESWALKER) || !commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) {
+ if ((!commander.isCreature() || !commander.isLegendary())
+ && (!commander.isPlaneswalker() || !commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) {
invalid.put("Commander", "Commander invalid (" + commander.getName() + ')');
valid = false;
}
@@ -501,7 +497,7 @@ public class Commander extends Constructed {
thisMaxPower = Math.max(thisMaxPower, 1);
}
- if (card.getCardType().contains(CardType.PLANESWALKER)) {
+ if (card.isPlaneswalker()) {
if (card.getName().toLowerCase().equals("jace, the mind sculptor")) {
thisMaxPower = Math.max(thisMaxPower, 6);
}
@@ -511,7 +507,7 @@ public class Commander extends Constructed {
thisMaxPower = Math.max(thisMaxPower, 4);
}
- if (card.getCardType().contains(CardType.LAND)) {
+ if (card.isLand()) {
thisMaxPower = 0;
}
diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java
index 76419b3b550..facc01acea6 100644
--- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java
+++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/DuelCommander.java
@@ -40,6 +40,7 @@ public class DuelCommander extends Commander {
banned.add("Back to Basics");
banned.add("Black Lotus");
banned.add("Channel");
+ banned.add("Chrome Mox");
banned.add("Dig Through Time");
banned.add("Entomb");
banned.add("Fastbond");
@@ -58,6 +59,7 @@ public class DuelCommander extends Commander {
banned.add("Mana Vault");
banned.add("Mind Twist");
banned.add("Mishra’s Workshop");
+ banned.add("Mox Diamond");
banned.add("Mox Emerald");
banned.add("Mox Jet");
banned.add("Mox Pearl");
@@ -80,6 +82,7 @@ public class DuelCommander extends Commander {
banned.add("Treasure Cruise");
banned.add("Vampiric Tutor");
+ bannedCommander.add("Breya, Etherium Shaper");
bannedCommander.add("Derevi, Empyrial Tactician");
bannedCommander.add("Edric, Spymaster of Trest");
bannedCommander.add("Erayo, Soratami Ascendant");
@@ -87,7 +90,7 @@ public class DuelCommander extends Commander {
bannedCommander.add("Oloro, Ageless Ascetic");
bannedCommander.add("Rofellos, Llanowar Emissary");
bannedCommander.add("Tasigur, the Golden Fang");
- bannedCommander.add("Yisan, the Wanderer Bard");
+ bannedCommander.add("Vial Smasher the Fierce");
bannedCommander.add("Zur the Enchanter");
}
diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java
index ab3b3ec42fd..6fb852e129c 100644
--- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java
+++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/TinyLeaders.java
@@ -174,8 +174,8 @@ public class TinyLeaders extends Constructed {
}
return false;
}
- if ((commander.getCardType().contains(CardType.CREATURE) && commander.getSupertype().contains("Legendary"))
- || (commander.getCardType().contains(CardType.PLANESWALKER) && commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) {
+ if ((commander.isCreature() && commander.isLegendary())
+ || (commander.isPlaneswalker() && commander.getAbilities().contains(CanBeYourCommanderAbility.getInstance()))) {
if (!bannedCommander.contains(commander.getName())) {
FilterMana color = CardUtil.getColorIdentity(commander);
for (Card card : deck.getCards()) {
diff --git a/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml b/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml
index 744fe8a2e00..1125d536bde 100644
--- a/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml
+++ b/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-deck-limited
diff --git a/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml
index e334cea9a4a..e6e40f6eb41 100644
--- a/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.CanadianHighlanderDuel/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-canadianhighlanderduel
diff --git a/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml
index c2c3feb6f1c..a2b1e3e5817 100644
--- a/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-commanderduel
diff --git a/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml b/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml
index 280efb453b8..b375807fcbe 100644
--- a/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.CommanderFreeForAll/pom.xml
@@ -6,7 +6,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-commanderfreeforall
diff --git a/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml b/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml
index e3572327116..d812155dc9e 100644
--- a/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-freeforall
diff --git a/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml
index a34076a763b..4d27e25c556 100644
--- a/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.MomirDuel/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-momirduel
diff --git a/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml
index 3b6edde8917..56bec2a4160 100644
--- a/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.TinyLeadersDuel/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-tinyleadersduel
diff --git a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml
index f55b40cde6a..beb8636331b 100644
--- a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml
+++ b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-game-twoplayerduel
diff --git a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml
index 809fe363f17..3c85e47b5c4 100644
--- a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml
+++ b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-player-ai-draftbot
diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml
index 0ee73a7e628..e9d83120f5e 100644
--- a/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml
+++ b/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-player-ai-ma
diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java
index 04ed14327fd..d5ad689c8f3 100644
--- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java
+++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ma/ArtificialScoringSystem.java
@@ -1,6 +1,5 @@
package mage.player.ai.ma;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.abilities.keyword.HasteAbility;
@@ -11,6 +10,8 @@ import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.Permanent;
+import java.util.UUID;
+
/**
* @author ubeefx, nantuko
*/
@@ -27,7 +28,7 @@ public final class ArtificialScoringSystem {
public static int getCardDefinitionScore(final Game game, final Card card) {
int value = 3; //TODO: add new rating system card value
- if (card.getCardType().contains(CardType.LAND)) {
+ if (card.isLand()) {
int score = (int) ((value / 2.0f) * 50);
//TODO: check this for "any color" lands
//TODO: check this for dual and filter lands
diff --git a/Mage.Server.Plugins/Mage.Player.AI/pom.xml b/Mage.Server.Plugins/Mage.Player.AI/pom.xml
index 6920179bac7..8674a99ec47 100644
--- a/Mage.Server.Plugins/Mage.Player.AI/pom.xml
+++ b/Mage.Server.Plugins/Mage.Player.AI/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-player-ai
diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java
index 0f12ea92442..4fe28205543 100644
--- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java
+++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java
@@ -27,6 +27,10 @@
*/
package mage.player.ai;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.*;
+import java.util.Map.Entry;
import mage.MageObject;
import mage.Mana;
import mage.abilities.*;
@@ -77,11 +81,6 @@ import mage.util.TournamentUtil;
import mage.util.TreeNode;
import org.apache.log4j.Logger;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.*;
-import java.util.Map.Entry;
-
/**
*
* suitable for two player games and some multiplayer games
@@ -1480,6 +1479,7 @@ public class ComputerPlayer extends PlayerImpl implements Player {
switch (ability.getSpellAbilityType()) {
case SPLIT:
case SPLIT_FUSED:
+ case SPLIT_AFTERMATH:
MageObject object = game.getObject(ability.getSourceId());
if (object != null) {
LinkedHashMap useableAbilities = getSpellAbilities(object, game.getState().getZone(object.getId()), game);
@@ -1608,7 +1608,7 @@ public class ComputerPlayer extends PlayerImpl implements Player {
int cardNum = 0;
while (deck.getCards().size() < 23 && sortedCards.size() > cardNum) {
Card card = sortedCards.get(cardNum);
- if (!card.getSupertype().contains("Basic")) {
+ if (!card.isBasic()) {
deck.getCards().add(card);
deck.getSideboard().remove(card);
}
diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java
index bdd761b68d0..bfb41b55fe4 100644
--- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java
+++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/utils/RateCard.java
@@ -4,7 +4,6 @@ import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.Card;
-import mage.constants.CardType;
import mage.constants.ColoredManaSymbol;
import mage.constants.Outcome;
import mage.target.Target;
@@ -57,15 +56,15 @@ public final class RateCard {
return rate;
}
int type;
- if (card.getCardType().contains(CardType.PLANESWALKER)) {
+ if (card.isPlaneswalker()) {
type = 15;
- } else if (card.getCardType().contains(CardType.CREATURE)) {
+ } else if (card.isCreature()) {
type = 10;
} else if (card.getSubtype(null).contains("Equipment")) {
type = 8;
} else if (card.getSubtype(null).contains("Aura")) {
type = 5;
- } else if (card.getCardType().contains(CardType.INSTANT)) {
+ } else if (card.isInstant()) {
type = 7;
} else {
type = 6;
@@ -78,8 +77,7 @@ public final class RateCard {
}
private static int isRemoval(Card card) {
- if (card.getSubtype(null).contains("Aura") || card.getCardType().contains(CardType.INSTANT)
- || card.getCardType().contains(CardType.SORCERY)) {
+ if (card.getSubtype(null).contains("Aura") || card.isInstant() || card.isSorcery()) {
for (Ability ability : card.getAbilities()) {
for (Effect effect : ability.getEffects()) {
diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml b/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml
index 6144703ad63..5e3e0c0bee3 100644
--- a/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml
+++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-player-ai-mcts
diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml b/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml
index 92135473697..53d79731bce 100644
--- a/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml
+++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-player-aiminimax
diff --git a/Mage.Server.Plugins/Mage.Player.Human/pom.xml b/Mage.Server.Plugins/Mage.Player.Human/pom.xml
index 1ad084c6c21..1188707f5e1 100644
--- a/Mage.Server.Plugins/Mage.Player.Human/pom.xml
+++ b/Mage.Server.Plugins/Mage.Player.Human/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-player-human
diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java
index afc14c45f35..38b239cb6e8 100644
--- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java
+++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java
@@ -28,29 +28,14 @@
package mage.player.human;
import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
+import java.util.*;
import mage.MageObject;
-import mage.abilities.Ability;
-import mage.abilities.ActivatedAbility;
-import mage.abilities.Mode;
-import mage.abilities.Modes;
-import mage.abilities.PlayLandAbility;
-import mage.abilities.SpecialAction;
-import mage.abilities.SpellAbility;
-import mage.abilities.TriggeredAbility;
+import mage.abilities.*;
import mage.abilities.costs.VariableCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.costs.mana.PhyrexianManaCost;
import mage.abilities.effects.RequirementEffect;
import mage.abilities.mana.ActivatedManaAbilityImpl;
import mage.cards.Card;
@@ -58,22 +43,9 @@ import mage.cards.Cards;
import mage.cards.decks.Deck;
import mage.choices.Choice;
import mage.choices.ChoiceImpl;
-import mage.constants.AbilityType;
-import mage.constants.CardType;
-import mage.constants.Constants;
-import mage.constants.ManaType;
-import mage.constants.Outcome;
-import mage.constants.PhaseStep;
-import mage.constants.PlayerAction;
-import static mage.constants.PlayerAction.HOLD_PRIORITY;
-import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_ID_NO;
+import mage.constants.*;
import static mage.constants.PlayerAction.REQUEST_AUTO_ANSWER_RESET_ALL;
-import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_NAME_LAST;
import static mage.constants.PlayerAction.TRIGGER_AUTO_ORDER_RESET_ALL;
-import mage.constants.RangeOfInfluence;
-import static mage.constants.SpellAbilityType.SPLIT;
-import static mage.constants.SpellAbilityType.SPLIT_FUSED;
-import mage.constants.Zone;
import mage.filter.common.FilterAttackingCreature;
import mage.filter.common.FilterBlockingCreature;
import mage.filter.common.FilterCreatureForCombat;
@@ -183,7 +155,7 @@ public class HumanPlayer extends PlayerImpl {
@Override
public boolean chooseUse(Outcome outcome, String message, Ability source, Game game) {
- return this.chooseUse(outcome, message, null, null, null, source, game);
+ return this.chooseUse(outcome, message, null, "Yes", "No", source, game);
}
@Override
@@ -326,7 +298,8 @@ public class HumanPlayer extends PlayerImpl {
public boolean choose(Outcome outcome, Target target, UUID sourceId, Game game, Map options) {
updateGameStatePriority("choose(5)", game);
UUID abilityControllerId = playerId;
- if (target.getTargetController() != null && target.getAbilityController() != null) {
+ if (target.getTargetController() != null
+ && target.getAbilityController() != null) {
abilityControllerId = target.getAbilityController();
}
if (options == null) {
@@ -334,7 +307,8 @@ public class HumanPlayer extends PlayerImpl {
}
while (!abort) {
Set targetIds = target.possibleTargets(sourceId, abilityControllerId, game);
- if (targetIds == null || targetIds.isEmpty()) {
+ if (targetIds == null
+ || targetIds.isEmpty()) {
return target.getTargets().size() >= target.getNumberOfTargets();
}
boolean required = target.isRequired(sourceId, game);
@@ -405,7 +379,8 @@ public class HumanPlayer extends PlayerImpl {
while (!abort) {
Set possibleTargets = target.possibleTargets(source == null ? null : source.getSourceId(), abilityControllerId, game);
boolean required = target.isRequired(source != null ? source.getSourceId() : null, game);
- if (possibleTargets.isEmpty() || target.getTargets().size() >= target.getNumberOfTargets()) {
+ if (possibleTargets.isEmpty()
+ || target.getTargets().size() >= target.getNumberOfTargets()) {
required = false;
}
@@ -440,7 +415,8 @@ public class HumanPlayer extends PlayerImpl {
if (options == null) {
options = new HashMap<>();
}
- if (target.getTargets().size() >= target.getNumberOfTargets() && !options.containsKey("UI.right.btn.text")) {
+ if (target.getTargets().size() >= target.getNumberOfTargets()
+ && !options.containsKey("UI.right.btn.text")) {
options.put("UI.right.btn.text", "Done");
}
options.put("targetZone", target.getZone());
@@ -593,19 +569,22 @@ public class HumanPlayer extends PlayerImpl {
}
}
if (getJustActivatedType() != null && !holdingPriority) {
- if (controllingPlayer.getUserData().isPassPriorityCast() && getJustActivatedType() == AbilityType.SPELL) {
+ if (controllingPlayer.getUserData().isPassPriorityCast()
+ && getJustActivatedType() == AbilityType.SPELL) {
setJustActivatedType(null);
pass(game);
return false;
}
- if (controllingPlayer.getUserData().isPassPriorityActivation() && getJustActivatedType() == AbilityType.ACTIVATED) {
+ if (controllingPlayer.getUserData().isPassPriorityActivation()
+ && getJustActivatedType() == AbilityType.ACTIVATED) {
setJustActivatedType(null);
pass(game);
return false;
}
}
if (isGameUnderControl()) { // Use the skip actions only if the player itself controls its turn
- if (passedAllTurns || passedTurnSkipStack) {
+ if (passedAllTurns
+ || passedTurnSkipStack) {
if (passWithManaPoolCheck(game)) {
return false;
}
@@ -628,15 +607,19 @@ public class HumanPlayer extends PlayerImpl {
if (game.getStack().isEmpty()) {
passedUntilStackResolved = false;
boolean dontCheckPassStep = false;
- if (passedTurn || passedTurnSkipStack) {
+ if (passedTurn
+ || passedTurnSkipStack) {
if (passWithManaPoolCheck(game)) {
return false;
}
}
if (passedUntilNextMain) {
- if (game.getTurn().getStepType() == PhaseStep.POSTCOMBAT_MAIN || game.getTurn().getStepType() == PhaseStep.PRECOMBAT_MAIN) {
+ if (game.getTurn().getStepType() == PhaseStep.POSTCOMBAT_MAIN
+ || game.getTurn().getStepType() == PhaseStep.PRECOMBAT_MAIN) {
// it's a main phase
- if (!skippedAtLeastOnce || (!playerId.equals(game.getActivePlayerId()) && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllMainPhases())) {
+ if (!skippedAtLeastOnce
+ || (!playerId.equals(game.getActivePlayerId())
+ && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllMainPhases())) {
skippedAtLeastOnce = true;
if (passWithManaPoolCheck(game)) {
return false;
@@ -655,7 +638,9 @@ public class HumanPlayer extends PlayerImpl {
if (passedUntilEndOfTurn) {
if (game.getTurn().getStepType() == PhaseStep.END_TURN) {
// It's end of turn phase
- if (!skippedAtLeastOnce || (playerId.equals(game.getActivePlayerId()) && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllEndPhases())) {
+ if (!skippedAtLeastOnce
+ || (playerId.equals(game.getActivePlayerId())
+ && !this.getUserData().getUserSkipPrioritySteps().isStopOnAllEndPhases())) {
skippedAtLeastOnce = true;
if (passWithManaPoolCheck(game)) {
return false;
@@ -671,7 +656,8 @@ public class HumanPlayer extends PlayerImpl {
}
}
}
- if (!dontCheckPassStep && checkPassStep(game, controllingPlayer)) {
+ if (!dontCheckPassStep
+ && checkPassStep(game, controllingPlayer)) {
if (passWithManaPoolCheck(game)) {
return false;
}
@@ -695,7 +681,8 @@ public class HumanPlayer extends PlayerImpl {
if (game.executingRollback()) {
return true;
}
- if (response.getBoolean() != null || response.getInteger() != null) {
+ if (response.getBoolean() != null
+ || response.getInteger() != null) {
if (passWithManaPoolCheck(game)) {
return false;
} else {
@@ -705,7 +692,8 @@ public class HumanPlayer extends PlayerImpl {
break;
}
- if (response.getString() != null && response.getString().equals("special")) {
+ if (response.getString() != null
+ && response.getString().equals("special")) {
specialAction(game);
} else if (response.getUUID() != null) {
boolean result = false;
@@ -726,7 +714,8 @@ public class HumanPlayer extends PlayerImpl {
}
if (actingPlayer != null) {
LinkedHashMap useableAbilities = actingPlayer.getUseableActivatedAbilities(object, zone, game);
- if (useableAbilities != null && !useableAbilities.isEmpty()) {
+ if (useableAbilities != null
+ && !useableAbilities.isEmpty()) {
activateAbility(useableAbilities, object, game);
result = true;
}
@@ -795,7 +784,8 @@ public class HumanPlayer extends PlayerImpl {
if (abilitiesWithNoOrderSet.isEmpty()) {
return abilityOrderLast;
}
- if (abilitiesWithNoOrderSet.size() == 1 || autoOrderUse) {
+ if (abilitiesWithNoOrderSet.size() == 1
+ || autoOrderUse) {
return abilitiesWithNoOrderSet.iterator().next();
}
updateGameStatePriority("chooseTriggeredAbility", game);
@@ -832,7 +822,8 @@ public class HumanPlayer extends PlayerImpl {
return false;
} else if (response.getUUID() != null) {
playManaAbilities(abilityToCast, unpaid, game);
- } else if (response.getString() != null && response.getString().equals("special")) {
+ } else if (response.getString() != null
+ && response.getString().equals("special")) {
if (unpaid instanceof ManaCostsImpl) {
specialManaAction(unpaid, game);
}
@@ -863,8 +854,10 @@ public class HumanPlayer extends PlayerImpl {
do {
game.fireGetAmountEvent(playerId, message, min, max);
waitForResponse(game);
- } while (response.getInteger() == null && !abort);
- if (response != null && response.getInteger() != null) {
+ } while (response.getInteger() == null
+ && !abort);
+ if (response != null
+ && response.getInteger() != null) {
xValue = response.getInteger();
}
return xValue;
@@ -877,8 +870,10 @@ public class HumanPlayer extends PlayerImpl {
do {
game.fireGetAmountEvent(playerId, message, min, max);
waitForResponse(game);
- } while (response.getInteger() == null && !abort);
- if (response != null && response.getInteger() != null) {
+ } while (response.getInteger() == null
+ && !abort);
+ if (response != null
+ && response.getInteger() != null) {
xValue = response.getInteger();
}
return xValue;
@@ -891,14 +886,16 @@ public class HumanPlayer extends PlayerImpl {
return;
}
Spell spell = game.getStack().getSpell(abilityToCast.getSourceId());
- if (spell != null && spell.isDoneActivatingManaAbilities()) {
+ if (spell != null
+ && spell.isDoneActivatingManaAbilities()) {
game.informPlayer(this, "You can no longer use activated mana abilities to pay for the current spell. Cancel and recast the spell and activate mana abilities first.");
return;
}
Zone zone = game.getState().getZone(object.getId());
if (zone != null) {
LinkedHashMap useableAbilities = getUseableManaAbilities(object, zone, game);
- if (useableAbilities != null && !useableAbilities.isEmpty()) {
+ if (useableAbilities != null
+ && !useableAbilities.isEmpty()) {
useableAbilities = ManaUtil.tryToAutoPay(unpaid, useableAbilities); // eliminates other abilities if one fits perfectly
currentlyUnpaidMana = unpaid;
activateAbility(useableAbilities, object, game);
@@ -913,8 +910,13 @@ public class HumanPlayer extends PlayerImpl {
FilterCreatureForCombat filter = filterCreatureForCombat.copy();
filter.add(new ControllerIdPredicate(attackingPlayerId));
while (!abort) {
- if (passedAllTurns || passedUntilEndStepBeforeMyTurn
- || (!getUserData().getUserSkipPrioritySteps().isStopOnDeclareAttackersDuringSkipAction() && (passedTurn || passedTurnSkipStack || passedUntilEndOfTurn || passedUntilNextMain))) {
+ if (passedAllTurns
+ || passedUntilEndStepBeforeMyTurn
+ || (!getUserData().getUserSkipPrioritySteps().isStopOnDeclareAttackersDuringSkipAction()
+ && (passedTurn
+ || passedTurnSkipStack
+ || passedUntilEndOfTurn
+ || passedUntilNextMain))) {
return;
}
Map options = new HashMap<>();
@@ -932,7 +934,8 @@ public class HumanPlayer extends PlayerImpl {
game.fireSelectEvent(playerId, "Select attackers", options);
waitForResponse(game);
- if (response.getString() != null && response.getString().equals("special")) { // All attack
+ if (response.getString() != null
+ && response.getString().equals("special")) { // All attack
setStoredBookmark(game.bookmarkState());
UUID attackedDefender = null;
if (game.getCombat().getDefenders().size() > 1) {
@@ -967,7 +970,8 @@ public class HumanPlayer extends PlayerImpl {
boolean validForcedAttacker = false;
if (game.getCombat().getAttackers().contains(creatureId)) {
Set possibleDefender = game.getCombat().getCreaturesForcedToAttack().get(creatureId);
- if (possibleDefender.isEmpty() || possibleDefender.contains(game.getCombat().getDefenderId(creatureId))) {
+ if (possibleDefender.isEmpty()
+ || possibleDefender.contains(game.getCombat().getDefenderId(creatureId))) {
validForcedAttacker = true;
}
}
@@ -995,10 +999,6 @@ public class HumanPlayer extends PlayerImpl {
}
return;
} else if (response.getInteger() != null) {
- //if (response.getInteger() == -9999) {
- // passedAllTurns = true;
- //}
- //passedTurn = true;
return;
} else if (response.getUUID() != null) {
Permanent attacker = game.getPermanent(response.getUUID());
@@ -1017,7 +1017,8 @@ public class HumanPlayer extends PlayerImpl {
for (Map.Entry entry : game.getContinuousEffects().getApplicableRequirementEffects(attacker, game).entrySet()) {
RequirementEffect effect = (RequirementEffect) entry.getKey();
if (effect.mustAttack(game)) {
- if (game.getCombat().getMaxAttackers() >= game.getCombat().getCreaturesForcedToAttack().size() && game.getCombat().getDefenders().size() == 1) {
+ if (game.getCombat().getMaxAttackers() >= game.getCombat().getCreaturesForcedToAttack().size()
+ && game.getCombat().getDefenders().size() == 1) {
return; // we can't change creatures forced to attack if only one possible defender exists and all forced creatures can attack
}
}
@@ -1039,7 +1040,8 @@ public class HumanPlayer extends PlayerImpl {
if (possibleDefender != null) {
forcedToAttack = true;
}
- if (possibleDefender == null || possibleDefender.isEmpty()) {
+ if (possibleDefender == null
+ || possibleDefender.isEmpty()) {
possibleDefender = defenders;
}
if (possibleDefender.size() == 1) {
@@ -1085,7 +1087,8 @@ public class HumanPlayer extends PlayerImpl {
updateGameStatePriority("selectBlockers", game);
FilterCreatureForCombatBlock filter = filterCreatureForCombatBlock.copy();
filter.add(new ControllerIdPredicate(defendingPlayerId));
- if (game.getBattlefield().count(filter, null, playerId, game) == 0 && !getUserData().getUserSkipPrioritySteps().isStopOnDeclareBlockerIfNoneAvailable()) {
+ if (game.getBattlefield().count(filter, null, playerId, game) == 0
+ && !getUserData().getUserSkipPrioritySteps().isStopOnDeclareBlockerIfNoneAvailable()) {
return;
}
while (!abort) {
@@ -1102,7 +1105,8 @@ public class HumanPlayer extends PlayerImpl {
// does not block yet and can block or can block more attackers
if (filter.match(blocker, null, playerId, game)) {
selectCombatGroup(defendingPlayerId, blocker.getId(), game);
- } else if (filterBlock.match(blocker, null, playerId, game) && game.getStack().isEmpty()) {
+ } else if (filterBlock.match(blocker, null, playerId, game)
+ && game.getStack().isEmpty()) {
removeBlocker = true;
}
@@ -1266,16 +1270,20 @@ public class HumanPlayer extends PlayerImpl {
protected void activateAbility(LinkedHashMap abilities, MageObject object, Game game) {
updateGameStatePriority("activateAbility", game);
- if (abilities.size() == 1 && suppressAbilityPicker(abilities.values().iterator().next())) {
+ if (abilities.size() == 1
+ && suppressAbilityPicker(abilities.values().iterator().next())) {
ActivatedAbility ability = abilities.values().iterator().next();
if (!ability.getTargets().isEmpty()
- || !(ability.getCosts().size() == 1 && ability.getCosts().get(0) instanceof SacrificeSourceCost)
- || !(ability.getCosts().size() == 2 && ability.getCosts().get(0) instanceof TapSourceCost && ability.getCosts().get(0) instanceof SacrificeSourceCost)) {
+ || !(ability.getCosts().size() == 1
+ && ability.getCosts().get(0) instanceof SacrificeSourceCost)
+ || !(ability.getCosts().size() == 2
+ && ability.getCosts().get(0) instanceof TapSourceCost
+ && ability.getCosts().get(0) instanceof SacrificeSourceCost)) {
activateAbility(ability, game);
return;
}
}
- if (userData.isUseFirstManaAbility() && object instanceof Permanent && object.getCardType().contains(CardType.LAND)) {
+ if (userData.isUseFirstManaAbility() && object instanceof Permanent && object.isLand()) {
ActivatedAbility ability = abilities.values().iterator().next();
if (ability instanceof ActivatedManaAbilityImpl) {
activateAbility(ability, game);
@@ -1298,7 +1306,8 @@ public class HumanPlayer extends PlayerImpl {
if (ability instanceof PlayLandAbility) {
return true;
}
- if (!ability.getSourceId().equals(getCastSourceIdWithAlternateMana()) && ability.getManaCostsToPay().convertedManaCost() > 0) {
+ if (!ability.getSourceId().equals(getCastSourceIdWithAlternateMana())
+ && ability.getManaCostsToPay().convertedManaCost() > 0) {
return true;
}
return ability instanceof ActivatedManaAbilityImpl;
@@ -1311,12 +1320,15 @@ public class HumanPlayer extends PlayerImpl {
switch (ability.getSpellAbilityType()) {
case SPLIT:
case SPLIT_FUSED:
+ case SPLIT_AFTERMATH:
MageObject object = game.getObject(ability.getSourceId());
if (object != null) {
LinkedHashMap useableAbilities = getSpellAbilities(object, game.getState().getZone(object.getId()), game);
- if (useableAbilities != null && useableAbilities.size() == 1) {
+ if (useableAbilities != null
+ && useableAbilities.size() == 1) {
return (SpellAbility) useableAbilities.values().iterator().next();
- } else if (useableAbilities != null && !useableAbilities.isEmpty()) {
+ } else if (useableAbilities != null
+ && !useableAbilities.isEmpty()) {
game.fireGetChoiceEvent(playerId, name, object, new ArrayList<>(useableAbilities.values()));
waitForResponse(game);
if (response.getUUID() != null) {
@@ -1593,7 +1605,7 @@ public class HumanPlayer extends PlayerImpl {
if (!isGameUnderControl()) {
priorityPlayerText = " / priority " + game.getPlayer(game.getPriorityPlayerId()).getName();
}
- if (!chooseUse(Outcome.Detriment, GameLog.getPlayerConfirmColoredText("You have still mana in your mana pool. Pass regardless?")
+ if (!chooseUse(Outcome.Detriment, GameLog.getPlayerConfirmColoredText("You still have mana in your mana pool. Pass regardless?")
+ GameLog.getSmallSecondLineText(activePlayerText + " / " + game.getStep().getType().toString() + priorityPlayerText), null, game)) {
sendPlayerAction(PlayerAction.PASS_PRIORITY_CANCEL_ALL_ACTIONS, game, null);
return false;
diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml
index 9e79eced5c0..93ff0ffda37 100644
--- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml
+++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-tournament-boosterdraft
diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java
index ef34d70b6e8..6c8198d584a 100644
--- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java
+++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/CubeFromDeck.java
@@ -49,7 +49,7 @@ public class CubeFromDeck extends DraftCube {
if (cards != null) {
for (DeckCardInfo card : cards.getCards()) {
- cubeCards.add(new CardIdentity(card.getCardName(), ""));
+ cubeCards.add(new CardIdentity(card.getCardName(), card.getSetCode()));
}
}
}
diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/LegacyCubeApril2017.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/LegacyCubeApril2017.java
new file mode 100644
index 00000000000..2713f607606
--- /dev/null
+++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/cubes/LegacyCubeApril2017.java
@@ -0,0 +1,642 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.tournament.cubes;
+
+import mage.game.draft.DraftCube;
+
+/**
+ *
+ * @author fireshoes
+ */
+
+public class LegacyCubeApril2017 extends DraftCube {
+
+ public LegacyCubeApril2017() {
+ super("MTGO Legacy Cube April 2017 (600 cards)");
+ cubeCards.add(new DraftCube.CardIdentity("Abbot of Keral Keep",""));
+ cubeCards.add(new DraftCube.CardIdentity("Abrupt Decay",""));
+ cubeCards.add(new DraftCube.CardIdentity("Abyssal Persecutor",""));
+ cubeCards.add(new DraftCube.CardIdentity("Accorder Paladin",""));
+ cubeCards.add(new DraftCube.CardIdentity("Acidic Slime",""));
+ cubeCards.add(new DraftCube.CardIdentity("Act of Aggression",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ajani Goldmane",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ajani Vengeant",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ajani, Caller of the Pride",""));
+ cubeCards.add(new DraftCube.CardIdentity("Anafenza, Kin-Tree Spirit",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ancestral Vision",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ancient Tomb",""));
+ cubeCards.add(new DraftCube.CardIdentity("Angel of Invention",""));
+ cubeCards.add(new DraftCube.CardIdentity("Angel of Serenity",""));
+ cubeCards.add(new DraftCube.CardIdentity("Anger of the Gods",""));
+ cubeCards.add(new DraftCube.CardIdentity("Anguished Unmaking",""));
+ cubeCards.add(new DraftCube.CardIdentity("Animate Dead",""));
+ cubeCards.add(new DraftCube.CardIdentity("Arbor Elf",""));
+ cubeCards.add(new DraftCube.CardIdentity("Arc Trail",""));
+ cubeCards.add(new DraftCube.CardIdentity("Archangel Avacyn",""));
+ cubeCards.add(new DraftCube.CardIdentity("Arid Mesa",""));
+ cubeCards.add(new DraftCube.CardIdentity("Armageddon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ashiok, Nightmare Weaver",""));
+ cubeCards.add(new DraftCube.CardIdentity("Assemble the Legion",""));
+ cubeCards.add(new DraftCube.CardIdentity("Augur of Bolas",""));
+ cubeCards.add(new DraftCube.CardIdentity("Avacyn's Pilgrim",""));
+ cubeCards.add(new DraftCube.CardIdentity("Avalanche Riders",""));
+ cubeCards.add(new DraftCube.CardIdentity("Avenger of Zendikar",""));
+ cubeCards.add(new DraftCube.CardIdentity("Badlands",""));
+ cubeCards.add(new DraftCube.CardIdentity("Baleful Strix",""));
+ cubeCards.add(new DraftCube.CardIdentity("Banefire",""));
+ cubeCards.add(new DraftCube.CardIdentity("Baneslayer Angel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Banisher Priest",""));
+ cubeCards.add(new DraftCube.CardIdentity("Banishing Light",""));
+ cubeCards.add(new DraftCube.CardIdentity("Baral, Chief of Compliance",""));
+ cubeCards.add(new DraftCube.CardIdentity("Batterskull",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bayou",""));
+ cubeCards.add(new DraftCube.CardIdentity("Beast Within",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bedlam Reveler",""));
+ cubeCards.add(new DraftCube.CardIdentity("Beetleback Chief",""));
+ cubeCards.add(new DraftCube.CardIdentity("Birds of Paradise",""));
+ cubeCards.add(new DraftCube.CardIdentity("Birthing Pod",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bitterblossom",""));
+ cubeCards.add(new DraftCube.CardIdentity("Blackcleave Cliffs",""));
+ cubeCards.add(new DraftCube.CardIdentity("Blade Splicer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Blood Artist",""));
+ cubeCards.add(new DraftCube.CardIdentity("Blood Crypt",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bloodbraid Elf",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bloodghast",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bloodstained Mire",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bloom Tender",""));
+ cubeCards.add(new DraftCube.CardIdentity("Blooming Marsh",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bogardan Hellkite",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bomat Courier",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bone Shredder",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bonfire of the Damned",""));
+ cubeCards.add(new DraftCube.CardIdentity("Boros Charm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Boros Reckoner",""));
+ cubeCards.add(new DraftCube.CardIdentity("Botanical Sanctum",""));
+ cubeCards.add(new DraftCube.CardIdentity("Brainstorm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Breeding Pool",""));
+ cubeCards.add(new DraftCube.CardIdentity("Brimaz, King of Oreskos",""));
+ cubeCards.add(new DraftCube.CardIdentity("Brimstone Volley",""));
+ cubeCards.add(new DraftCube.CardIdentity("Bruna, the Fading Light",""));
+ cubeCards.add(new DraftCube.CardIdentity("Buried Alive",""));
+ cubeCards.add(new DraftCube.CardIdentity("Burst Lightning",""));
+ cubeCards.add(new DraftCube.CardIdentity("Careful Consideration",""));
+ cubeCards.add(new DraftCube.CardIdentity("Careful Study",""));
+ cubeCards.add(new DraftCube.CardIdentity("Cathartic Reunion",""));
+ cubeCards.add(new DraftCube.CardIdentity("Celestial Colonnade",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chain Lightning",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chainer's Edict",""));
+ cubeCards.add(new DraftCube.CardIdentity("Champion of the Parish",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chandra's Phoenix",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chandra, Fire of Kaladesh",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chandra, Flamecaller",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chandra, Pyromaster",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chandra, Torch of Defiance",""));
+ cubeCards.add(new DraftCube.CardIdentity("Char",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chord of Calling",""));
+ cubeCards.add(new DraftCube.CardIdentity("Chromatic Lantern",""));
+ cubeCards.add(new DraftCube.CardIdentity("City of Brass",""));
+ cubeCards.add(new DraftCube.CardIdentity("Clifftop Retreat",""));
+ cubeCards.add(new DraftCube.CardIdentity("Cloudgoat Ranger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Coalition Relic",""));
+ cubeCards.add(new DraftCube.CardIdentity("Coldsteel Heart",""));
+ cubeCards.add(new DraftCube.CardIdentity("Collective Brutality",""));
+ cubeCards.add(new DraftCube.CardIdentity("Collective Defiance",""));
+ cubeCards.add(new DraftCube.CardIdentity("Collective Effort",""));
+ cubeCards.add(new DraftCube.CardIdentity("Compulsive Research",""));
+ cubeCards.add(new DraftCube.CardIdentity("Concealed Courtyard",""));
+ cubeCards.add(new DraftCube.CardIdentity("Condemn",""));
+ cubeCards.add(new DraftCube.CardIdentity("Consecrated Sphinx",""));
+ cubeCards.add(new DraftCube.CardIdentity("Control Magic",""));
+ cubeCards.add(new DraftCube.CardIdentity("Copperline Gorge",""));
+ cubeCards.add(new DraftCube.CardIdentity("Council's Judgment",""));
+ cubeCards.add(new DraftCube.CardIdentity("Counterspell",""));
+ cubeCards.add(new DraftCube.CardIdentity("Courser of Kruphix",""));
+ cubeCards.add(new DraftCube.CardIdentity("Crater's Claws",""));
+ cubeCards.add(new DraftCube.CardIdentity("Craterhoof Behemoth",""));
+ cubeCards.add(new DraftCube.CardIdentity("Creeping Tar Pit",""));
+ cubeCards.add(new DraftCube.CardIdentity("Crux of Fate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Cryptic Command",""));
+ cubeCards.add(new DraftCube.CardIdentity("Cultivate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Cunning Sparkmage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Cyclonic Rift",""));
+ cubeCards.add(new DraftCube.CardIdentity("Damnation",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dark Confidant",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dark Petition",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dark Ritual",""));
+ cubeCards.add(new DraftCube.CardIdentity("Darkslick Shores",""));
+ cubeCards.add(new DraftCube.CardIdentity("Day of Judgment",""));
+ cubeCards.add(new DraftCube.CardIdentity("Daze",""));
+ cubeCards.add(new DraftCube.CardIdentity("Deathrite Shaman",""));
+ cubeCards.add(new DraftCube.CardIdentity("Deceiver Exarch",""));
+ cubeCards.add(new DraftCube.CardIdentity("Declaration in Stone",""));
+ cubeCards.add(new DraftCube.CardIdentity("Deep Analysis",""));
+ cubeCards.add(new DraftCube.CardIdentity("Delver of Secrets",""));
+ cubeCards.add(new DraftCube.CardIdentity("Den Protector",""));
+ cubeCards.add(new DraftCube.CardIdentity("Deranged Hermit",""));
+ cubeCards.add(new DraftCube.CardIdentity("Desecration Demon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Devil's Play",""));
+ cubeCards.add(new DraftCube.CardIdentity("Devoted Druid",""));
+ cubeCards.add(new DraftCube.CardIdentity("Disallow",""));
+ cubeCards.add(new DraftCube.CardIdentity("Disfigure",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dismember",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dismiss",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dissipate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dissolve",""));
+ cubeCards.add(new DraftCube.CardIdentity("Distended Mindbender",""));
+ cubeCards.add(new DraftCube.CardIdentity("Domri Rade",""));
+ cubeCards.add(new DraftCube.CardIdentity("Doom Blade",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dragonlord Atarka",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dragonlord Dromoka",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dragonlord Ojutai",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dragonlord Silumgar",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dragonskull Summit",""));
+ cubeCards.add(new DraftCube.CardIdentity("Drana, Liberator of Malakir",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dread Return",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dreadbore",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dromoka's Command",""));
+ cubeCards.add(new DraftCube.CardIdentity("Drowned Catacomb",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dualcaster Mage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Dungeon Geists",""));
+ cubeCards.add(new DraftCube.CardIdentity("Duplicant",""));
+ cubeCards.add(new DraftCube.CardIdentity("Duress",""));
+ cubeCards.add(new DraftCube.CardIdentity("Duskwatch Recruiter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Edric, Spymaster of Trest",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elder Deep-Fiend",""));
+ cubeCards.add(new DraftCube.CardIdentity("Electrolyze",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elesh Norn, Grand Cenobite",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elspeth Tirel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elspeth, Knight-Errant",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elspeth, Sun's Champion",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elves of Deep Shadow",""));
+ cubeCards.add(new DraftCube.CardIdentity("Elvish Mystic",""));
+ cubeCards.add(new DraftCube.CardIdentity("Emeria Angel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Emrakul, the Aeons Torn",""));
+ cubeCards.add(new DraftCube.CardIdentity("Emrakul, the Promised End",""));
+ cubeCards.add(new DraftCube.CardIdentity("Engineered Explosives",""));
+ cubeCards.add(new DraftCube.CardIdentity("Entomb",""));
+ cubeCards.add(new DraftCube.CardIdentity("Entreat the Angels",""));
+ cubeCards.add(new DraftCube.CardIdentity("Erebos, God of the Dead",""));
+ cubeCards.add(new DraftCube.CardIdentity("Eternal Witness",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ever After",""));
+ cubeCards.add(new DraftCube.CardIdentity("Exhume",""));
+ cubeCards.add(new DraftCube.CardIdentity("Explore",""));
+ cubeCards.add(new DraftCube.CardIdentity("Exquisite Firecraft",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fact or Fiction",""));
+ cubeCards.add(new DraftCube.CardIdentity("Faith's Fetters",""));
+ cubeCards.add(new DraftCube.CardIdentity("Falkenrath Gorger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Far // Away",""));
+ cubeCards.add(new DraftCube.CardIdentity("Farseek",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fatal Push",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fauna Shaman",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fertile Ground",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fiend Hunter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fiery Confluence",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fire // Ice",""));
+ cubeCards.add(new DraftCube.CardIdentity("Firebolt",""));
+ cubeCards.add(new DraftCube.CardIdentity("Firefist Striker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Flame Slash",""));
+ cubeCards.add(new DraftCube.CardIdentity("Flametongue Kavu",""));
+ cubeCards.add(new DraftCube.CardIdentity("Flickerwisp",""));
+ cubeCards.add(new DraftCube.CardIdentity("Flooded Strand",""));
+ cubeCards.add(new DraftCube.CardIdentity("Forbid",""));
+ cubeCards.add(new DraftCube.CardIdentity("Force of Will",""));
+ cubeCards.add(new DraftCube.CardIdentity("Force Spike",""));
+ cubeCards.add(new DraftCube.CardIdentity("Forked Bolt",""));
+ cubeCards.add(new DraftCube.CardIdentity("Frost Titan",""));
+ cubeCards.add(new DraftCube.CardIdentity("Future Sight",""));
+ cubeCards.add(new DraftCube.CardIdentity("Fyndhorn Elves",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gaea's Cradle",""));
+ cubeCards.add(new DraftCube.CardIdentity("Garruk Relentless",""));
+ cubeCards.add(new DraftCube.CardIdentity("Garruk Wildspeaker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Garruk, Apex Predator",""));
+ cubeCards.add(new DraftCube.CardIdentity("Garruk, Primal Hunter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gatekeeper of Malakir",""));
+ cubeCards.add(new DraftCube.CardIdentity("Geist of Saint Traft",""));
+ cubeCards.add(new DraftCube.CardIdentity("Genesis Wave",""));
+ cubeCards.add(new DraftCube.CardIdentity("Geralf's Messenger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ghor-Clan Rampager",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gideon Jura",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gideon, Ally of Zendikar",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gifted Aetherborn",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gifts Ungiven",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gilded Lotus",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gilt-Leaf Winnower",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gisela, the Broken Blade",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gitaxian Probe",""));
+ cubeCards.add(new DraftCube.CardIdentity("Glacial Fortress",""));
+ cubeCards.add(new DraftCube.CardIdentity("Glen Elendra Archmage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Glorious Anthem",""));
+ cubeCards.add(new DraftCube.CardIdentity("Go for the Throat",""));
+ cubeCards.add(new DraftCube.CardIdentity("Goblin Bombardment",""));
+ cubeCards.add(new DraftCube.CardIdentity("Goblin Dark-Dwellers",""));
+ cubeCards.add(new DraftCube.CardIdentity("Goblin Guide",""));
+ cubeCards.add(new DraftCube.CardIdentity("Goblin Rabblemaster",""));
+ cubeCards.add(new DraftCube.CardIdentity("Godless Shrine",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gonti, Lord of Luxury",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gore-House Chainwalker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Grafted Wargear",""));
+ cubeCards.add(new DraftCube.CardIdentity("Grave Titan",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gray Merchant of Asphodel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Greater Gargadon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Green Sun's Zenith",""));
+ cubeCards.add(new DraftCube.CardIdentity("Greenwarden of Murasa",""));
+ cubeCards.add(new DraftCube.CardIdentity("Grim Lavamancer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Griselbrand",""));
+ cubeCards.add(new DraftCube.CardIdentity("Gurmag Angler",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hallowed Fountain",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hallowed Spiritkeeper",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hangarback Walker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Harbinger of the Tides",""));
+ cubeCards.add(new DraftCube.CardIdentity("Harmonize",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hellrider",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hero of Bladehold",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hero's Downfall",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hidden Dragonslayer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hinterland Harbor",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hissing Quagmire",""));
+ cubeCards.add(new DraftCube.CardIdentity("Honor of the Pure",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hordeling Outburst",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hornet Queen",""));
+ cubeCards.add(new DraftCube.CardIdentity("Huntmaster of the Fells",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hymn to Tourach",""));
+ cubeCards.add(new DraftCube.CardIdentity("Hypnotic Specter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Icefall Regent",""));
+ cubeCards.add(new DraftCube.CardIdentity("Imperial Recruiter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Impulse",""));
+ cubeCards.add(new DraftCube.CardIdentity("Incendiary Flow",""));
+ cubeCards.add(new DraftCube.CardIdentity("Incinerate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Inferno Titan",""));
+ cubeCards.add(new DraftCube.CardIdentity("Inquisition of Kozilek",""));
+ cubeCards.add(new DraftCube.CardIdentity("Inspiring Vantage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Into the Roil",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ire Shaman",""));
+ cubeCards.add(new DraftCube.CardIdentity("Isamaru, Hound of Konda",""));
+ cubeCards.add(new DraftCube.CardIdentity("Isolated Chapel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Izzet Charm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Jace Beleren",""));
+ cubeCards.add(new DraftCube.CardIdentity("Jace, Architect of Thought",""));
+ cubeCards.add(new DraftCube.CardIdentity("Jace, the Mind Sculptor",""));
+ cubeCards.add(new DraftCube.CardIdentity("Jace, Vryn's Prodigy",""));
+ cubeCards.add(new DraftCube.CardIdentity("Jackal Pup",""));
+ cubeCards.add(new DraftCube.CardIdentity("Joraga Treespeaker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Journey to Nowhere",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kalitas, Traitor of Ghet",""));
+ cubeCards.add(new DraftCube.CardIdentity("Karmic Guide",""));
+ cubeCards.add(new DraftCube.CardIdentity("Karn Liberated",""));
+ cubeCards.add(new DraftCube.CardIdentity("Keiga, the Tide Star",""));
+ cubeCards.add(new DraftCube.CardIdentity("Keranos, God of Storms",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kiki-Jiki, Mirror Breaker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kiln Fiend",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kiora's Follower",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kiora, the Crashing Wave",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kira, Great Glass-Spinner",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kitchen Finks",""));
+ cubeCards.add(new DraftCube.CardIdentity("Knight of the Reliquary",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kodama's Reach",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kokusho, the Evening Star",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kolaghan's Command",""));
+ cubeCards.add(new DraftCube.CardIdentity("Koth of the Hammer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Kytheon, Hero of Akros",""));
+ cubeCards.add(new DraftCube.CardIdentity("Land Tax",""));
+ cubeCards.add(new DraftCube.CardIdentity("Languish",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lavaclaw Reaches",""));
+ cubeCards.add(new DraftCube.CardIdentity("Legacy's Allure",""));
+ cubeCards.add(new DraftCube.CardIdentity("Leonin Relic-Warder",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lightning Bolt",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lightning Greaves",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lightning Helix",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lightning Mauler",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lightning Strike",""));
+ cubeCards.add(new DraftCube.CardIdentity("Liliana of the Veil",""));
+ cubeCards.add(new DraftCube.CardIdentity("Liliana Vess",""));
+ cubeCards.add(new DraftCube.CardIdentity("Liliana, Heretical Healer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Liliana, the Last Hope",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lingering Souls",""));
+ cubeCards.add(new DraftCube.CardIdentity("Linvala, Keeper of Silence",""));
+ cubeCards.add(new DraftCube.CardIdentity("Linvala, the Preserver",""));
+ cubeCards.add(new DraftCube.CardIdentity("Living Death",""));
+ cubeCards.add(new DraftCube.CardIdentity("Llanowar Elves",""));
+ cubeCards.add(new DraftCube.CardIdentity("Looter il-Kor",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lotus Cobra",""));
+ cubeCards.add(new DraftCube.CardIdentity("Lumbering Falls",""));
+ cubeCards.add(new DraftCube.CardIdentity("Maelstrom Pulse",""));
+ cubeCards.add(new DraftCube.CardIdentity("Magma Jet",""));
+ cubeCards.add(new DraftCube.CardIdentity("Magus of the Wheel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Makeshift Mannequin",""));
+ cubeCards.add(new DraftCube.CardIdentity("Malicious Affliction",""));
+ cubeCards.add(new DraftCube.CardIdentity("Man-o'-War",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mana Confluence",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mana Tithe",""));
+ cubeCards.add(new DraftCube.CardIdentity("Managorger Hydra",""));
+ cubeCards.add(new DraftCube.CardIdentity("Manic Vandal",""));
+ cubeCards.add(new DraftCube.CardIdentity("Marsh Flats",""));
+ cubeCards.add(new DraftCube.CardIdentity("Martial Coup",""));
+ cubeCards.add(new DraftCube.CardIdentity("Massacre Wurm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Master of the Wild Hunt",""));
+ cubeCards.add(new DraftCube.CardIdentity("Master of Waves",""));
+ cubeCards.add(new DraftCube.CardIdentity("Maze of Ith",""));
+ cubeCards.add(new DraftCube.CardIdentity("Meloku the Clouded Mirror",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mentor of the Meek",""));
+ cubeCards.add(new DraftCube.CardIdentity("Merfolk Looter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mimic Vat",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mind Stone",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mirari's Wake",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mirran Crusader",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mirror Entity",""));
+ cubeCards.add(new DraftCube.CardIdentity("Miscalculation",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mishra's Factory",""));
+ cubeCards.add(new DraftCube.CardIdentity("Misty Rainforest",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mizzium Mortars",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mogg War Marshal",""));
+ cubeCards.add(new DraftCube.CardIdentity("Monastery Mentor",""));
+ cubeCards.add(new DraftCube.CardIdentity("Monastery Swiftspear",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mother of Runes",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mulldrifter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Murderous Cut",""));
+ cubeCards.add(new DraftCube.CardIdentity("Murderous Redcap",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mutavault",""));
+ cubeCards.add(new DraftCube.CardIdentity("Myr Battlesphere",""));
+ cubeCards.add(new DraftCube.CardIdentity("Mystic Snake",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nahiri, the Harbinger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Natural Order",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nature's Lore",""));
+ cubeCards.add(new DraftCube.CardIdentity("Necromancy",""));
+ cubeCards.add(new DraftCube.CardIdentity("Needle Spires",""));
+ cubeCards.add(new DraftCube.CardIdentity("Negate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nekrataal",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nevinyrral's Disk",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nicol Bolas, Planeswalker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nightveil Specter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nissa, Vastwood Seer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nissa, Vital Force",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nissa, Voice of Zendikar",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nissa, Worldwaker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Noble Hierarch",""));
+ cubeCards.add(new DraftCube.CardIdentity("Noxious Gearhulk",""));
+ cubeCards.add(new DraftCube.CardIdentity("Nykthos, Shrine to Nyx",""));
+ cubeCards.add(new DraftCube.CardIdentity("Oath of Nissa",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ob Nixilis Reignited",""));
+ cubeCards.add(new DraftCube.CardIdentity("Oblivion Ring",""));
+ cubeCards.add(new DraftCube.CardIdentity("Oblivion Stone",""));
+ cubeCards.add(new DraftCube.CardIdentity("Obstinate Baloth",""));
+ cubeCards.add(new DraftCube.CardIdentity("Old Man of the Sea",""));
+ cubeCards.add(new DraftCube.CardIdentity("Olivia Voldaren",""));
+ cubeCards.add(new DraftCube.CardIdentity("Oona's Prowler",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ophiomancer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Opposition",""));
+ cubeCards.add(new DraftCube.CardIdentity("Oracle of Mul Daya",""));
+ cubeCards.add(new DraftCube.CardIdentity("Oust",""));
+ cubeCards.add(new DraftCube.CardIdentity("Outpost Siege",""));
+ cubeCards.add(new DraftCube.CardIdentity("Overgrown Battlement",""));
+ cubeCards.add(new DraftCube.CardIdentity("Overgrown Tomb",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pack Rat",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pact of Negation",""));
+ cubeCards.add(new DraftCube.CardIdentity("Panharmonicon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Parallax Wave",""));
+ cubeCards.add(new DraftCube.CardIdentity("Part the Waterveil",""));
+ cubeCards.add(new DraftCube.CardIdentity("Path to Exile",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pernicious Deed",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pestermite",""));
+ cubeCards.add(new DraftCube.CardIdentity("Phantasmal Image",""));
+ cubeCards.add(new DraftCube.CardIdentity("Phyrexian Arena",""));
+ cubeCards.add(new DraftCube.CardIdentity("Phyrexian Metamorph",""));
+ cubeCards.add(new DraftCube.CardIdentity("Phyrexian Obliterator",""));
+ cubeCards.add(new DraftCube.CardIdentity("Phyrexian Rager",""));
+ cubeCards.add(new DraftCube.CardIdentity("Phyrexian Revoker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pia and Kiran Nalaar",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pillar of Flame",""));
+ cubeCards.add(new DraftCube.CardIdentity("Plateau",""));
+ cubeCards.add(new DraftCube.CardIdentity("Polluted Delta",""));
+ cubeCards.add(new DraftCube.CardIdentity("Polukranos, World Eater",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ponder",""));
+ cubeCards.add(new DraftCube.CardIdentity("Porcelain Legionnaire",""));
+ cubeCards.add(new DraftCube.CardIdentity("Precinct Captain",""));
+ cubeCards.add(new DraftCube.CardIdentity("Preordain",""));
+ cubeCards.add(new DraftCube.CardIdentity("Primal Command",""));
+ cubeCards.add(new DraftCube.CardIdentity("Primeval Titan",""));
+ cubeCards.add(new DraftCube.CardIdentity("Profane Command",""));
+ cubeCards.add(new DraftCube.CardIdentity("Purphoros, God of the Forge",""));
+ cubeCards.add(new DraftCube.CardIdentity("Pyroclasm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Qasali Pridemage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Quarantine Field",""));
+ cubeCards.add(new DraftCube.CardIdentity("Raging Ravine",""));
+ cubeCards.add(new DraftCube.CardIdentity("Raise the Alarm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rakdos's Return",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ral Zarek",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rampaging Baloths",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rampant Growth",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ranger of Eos",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ratchet Bomb",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ravages of War",""));
+ cubeCards.add(new DraftCube.CardIdentity("Razorverge Thicket",""));
+ cubeCards.add(new DraftCube.CardIdentity("Read the Bones",""));
+ cubeCards.add(new DraftCube.CardIdentity("Reanimate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Reckless Bushwhacker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Reclamation Sage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Recruiter of the Guard",""));
+ cubeCards.add(new DraftCube.CardIdentity("Recurring Nightmare",""));
+ cubeCards.add(new DraftCube.CardIdentity("Reflecting Pool",""));
+ cubeCards.add(new DraftCube.CardIdentity("Reflector Mage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Regrowth",""));
+ cubeCards.add(new DraftCube.CardIdentity("Relic of Progenitus",""));
+ cubeCards.add(new DraftCube.CardIdentity("Remand",""));
+ cubeCards.add(new DraftCube.CardIdentity("Remove Soul",""));
+ cubeCards.add(new DraftCube.CardIdentity("Repeal",""));
+ cubeCards.add(new DraftCube.CardIdentity("Restoration Angel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Reveillark",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rift Bolt",""));
+ cubeCards.add(new DraftCube.CardIdentity("Riftwing Cloudskate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rishadan Port",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rishkar, Peema Renegade",""));
+ cubeCards.add(new DraftCube.CardIdentity("Roast",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rofellos, Llanowar Emissary",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rootbound Crag",""));
+ cubeCards.add(new DraftCube.CardIdentity("Rune-Scarred Demon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sacred Foundry",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sakura-Tribe Elder",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sarkhan, the Dragonspeaker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Savannah",""));
+ cubeCards.add(new DraftCube.CardIdentity("Scalding Tarn",""));
+ cubeCards.add(new DraftCube.CardIdentity("Scavenging Ooze",""));
+ cubeCards.add(new DraftCube.CardIdentity("Scrapheap Scrounger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Scrubland",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sea Gate Oracle",""));
+ cubeCards.add(new DraftCube.CardIdentity("Seachrome Coast",""));
+ cubeCards.add(new DraftCube.CardIdentity("Seal of Fire",""));
+ cubeCards.add(new DraftCube.CardIdentity("Search for Tomorrow",""));
+ cubeCards.add(new DraftCube.CardIdentity("Searing Spear",""));
+ cubeCards.add(new DraftCube.CardIdentity("Secure the Wastes",""));
+ cubeCards.add(new DraftCube.CardIdentity("Seeker of the Way",""));
+ cubeCards.add(new DraftCube.CardIdentity("Selfless Spirit",""));
+ cubeCards.add(new DraftCube.CardIdentity("Selvala, Heart of the Wilds",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sensei's Divining Top",""));
+ cubeCards.add(new DraftCube.CardIdentity("Serendib Efreet",""));
+ cubeCards.add(new DraftCube.CardIdentity("Serum Visions",""));
+ cubeCards.add(new DraftCube.CardIdentity("Shadowmage Infiltrator",""));
+ cubeCards.add(new DraftCube.CardIdentity("Shaman of Forgotten Ways",""));
+ cubeCards.add(new DraftCube.CardIdentity("Shambling Vent",""));
+ cubeCards.add(new DraftCube.CardIdentity("Shardless Agent",""));
+ cubeCards.add(new DraftCube.CardIdentity("Shelldock Isle",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sheoldred, Whispering One",""));
+ cubeCards.add(new DraftCube.CardIdentity("Show and Tell",""));
+ cubeCards.add(new DraftCube.CardIdentity("Shriekmaw",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sidisi, Undead Vizier",""));
+ cubeCards.add(new DraftCube.CardIdentity("Siege-Gang Commander",""));
+ cubeCards.add(new DraftCube.CardIdentity("Silverblade Paladin",""));
+ cubeCards.add(new DraftCube.CardIdentity("Skinrender",""));
+ cubeCards.add(new DraftCube.CardIdentity("Slagstorm",""));
+ cubeCards.add(new DraftCube.CardIdentity("Slaughter Pact",""));
+ cubeCards.add(new DraftCube.CardIdentity("Smuggler's Copter",""));
+ cubeCards.add(new DraftCube.CardIdentity("Snapcaster Mage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sneak Attack",""));
+ cubeCards.add(new DraftCube.CardIdentity("Soldier of the Pantheon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Solemn Simulacrum",""));
+ cubeCards.add(new DraftCube.CardIdentity("Song of the Dryads",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sorin Markov",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sorin, Solemn Visitor",""));
+ cubeCards.add(new DraftCube.CardIdentity("Soulfire Grand Master",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sower of Temptation",""));
+ cubeCards.add(new DraftCube.CardIdentity("Spear of Heliod",""));
+ cubeCards.add(new DraftCube.CardIdentity("Spectral Procession",""));
+ cubeCards.add(new DraftCube.CardIdentity("Spell Pierce",""));
+ cubeCards.add(new DraftCube.CardIdentity("Spell Queller",""));
+ cubeCards.add(new DraftCube.CardIdentity("Spellskite",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sphinx's Revelation",""));
+ cubeCards.add(new DraftCube.CardIdentity("Spirebluff Canal",""));
+ cubeCards.add(new DraftCube.CardIdentity("Splinter Twin",""));
+ cubeCards.add(new DraftCube.CardIdentity("Staggershock",""));
+ cubeCards.add(new DraftCube.CardIdentity("Steam Vents",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stirring Wildwood",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stoke the Flames",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stomping Ground",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stoneforge Mystic",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stormbreath Dragon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stormchaser Mage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stratus Dancer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stroke of Genius",""));
+ cubeCards.add(new DraftCube.CardIdentity("Stromkirk Noble",""));
+ cubeCards.add(new DraftCube.CardIdentity("Student of Warfare",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sublime Archangel",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sulfur Falls",""));
+ cubeCards.add(new DraftCube.CardIdentity("Summoning Trap",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sun Titan",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sundering Titan",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sunpetal Grove",""));
+ cubeCards.add(new DraftCube.CardIdentity("Supreme Verdict",""));
+ cubeCards.add(new DraftCube.CardIdentity("Surrak, the Hunt Caller",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sword of Body and Mind",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sword of Feast and Famine",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sword of Fire and Ice",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sword of Light and Shadow",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sword of War and Peace",""));
+ cubeCards.add(new DraftCube.CardIdentity("Swords to Plowshares",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sylvan Advocate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sylvan Caryatid",""));
+ cubeCards.add(new DraftCube.CardIdentity("Sylvan Library",""));
+ cubeCards.add(new DraftCube.CardIdentity("Taiga",""));
+ cubeCards.add(new DraftCube.CardIdentity("Talrand, Sky Summoner",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tamiyo, the Moon Sage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tangle Wire",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tarmogoyf",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tasigur, the Golden Fang",""));
+ cubeCards.add(new DraftCube.CardIdentity("Teferi, Mage of Zhalfir",""));
+ cubeCards.add(new DraftCube.CardIdentity("Temple Garden",""));
+ cubeCards.add(new DraftCube.CardIdentity("Terastodon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Terminate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Terminus",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thalia, Guardian of Thraben",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thalia, Heretic Cathar",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thassa, God of the Sea",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thing in the Ice",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thirst for Knowledge",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thoughtseize",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thragtusk",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thrun, the Last Troll",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thunderbreak Regent",""));
+ cubeCards.add(new DraftCube.CardIdentity("Thundermaw Hellkite",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tidehollow Sculler",""));
+ cubeCards.add(new DraftCube.CardIdentity("Time Warp",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tireless Tracker",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tooth and Nail",""));
+ cubeCards.add(new DraftCube.CardIdentity("Torch Fiend",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tower of the Magistrate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Toxic Deluge",""));
+ cubeCards.add(new DraftCube.CardIdentity("Treachery",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tropical Island",""));
+ cubeCards.add(new DraftCube.CardIdentity("Trygon Predator",""));
+ cubeCards.add(new DraftCube.CardIdentity("Tundra",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ugin, the Spirit Dragon",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ulamog, the Ceaseless Hunger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Ultimate Price",""));
+ cubeCards.add(new DraftCube.CardIdentity("Umezawa's Jitte",""));
+ cubeCards.add(new DraftCube.CardIdentity("Unburial Rites",""));
+ cubeCards.add(new DraftCube.CardIdentity("Underground Sea",""));
+ cubeCards.add(new DraftCube.CardIdentity("Underworld Connections",""));
+ cubeCards.add(new DraftCube.CardIdentity("Unexpectedly Absent",""));
+ cubeCards.add(new DraftCube.CardIdentity("Upheaval",""));
+ cubeCards.add(new DraftCube.CardIdentity("Utopia Sprawl",""));
+ cubeCards.add(new DraftCube.CardIdentity("Vampire Hexmage",""));
+ cubeCards.add(new DraftCube.CardIdentity("Vampire Nighthawk",""));
+ cubeCards.add(new DraftCube.CardIdentity("Vendilion Clique",""));
+ cubeCards.add(new DraftCube.CardIdentity("Venser, Shaper Savant",""));
+ cubeCards.add(new DraftCube.CardIdentity("Verdant Catacombs",""));
+ cubeCards.add(new DraftCube.CardIdentity("Verdurous Gearhulk",""));
+ cubeCards.add(new DraftCube.CardIdentity("Victimize",""));
+ cubeCards.add(new DraftCube.CardIdentity("Vindicate",""));
+ cubeCards.add(new DraftCube.CardIdentity("Volcanic Island",""));
+ cubeCards.add(new DraftCube.CardIdentity("Volrath's Stronghold",""));
+ cubeCards.add(new DraftCube.CardIdentity("Vorinclex, Voice of Hunger",""));
+ cubeCards.add(new DraftCube.CardIdentity("Vraska the Unseen",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wake Thrasher",""));
+ cubeCards.add(new DraftCube.CardIdentity("Walking Ballista",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wall of Blossoms",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wall of Omens",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wandering Fumarole",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wasteland",""));
+ cubeCards.add(new DraftCube.CardIdentity("Watery Grave",""));
+ cubeCards.add(new DraftCube.CardIdentity("Whip of Erebos",""));
+ cubeCards.add(new DraftCube.CardIdentity("Whirler Rogue",""));
+ cubeCards.add(new DraftCube.CardIdentity("Whisperwood Elemental",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wickerbough Elder",""));
+ cubeCards.add(new DraftCube.CardIdentity("Windbrisk Heights",""));
+ cubeCards.add(new DraftCube.CardIdentity("Windswept Heath",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wolfir Silverheart",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wood Elves",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wooded Foothills",""));
+ cubeCards.add(new DraftCube.CardIdentity("Woodfall Primus",""));
+ cubeCards.add(new DraftCube.CardIdentity("Woodland Cemetery",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wrath of God",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wretched Confluence",""));
+ cubeCards.add(new DraftCube.CardIdentity("Wurmcoil Engine",""));
+ cubeCards.add(new DraftCube.CardIdentity("Xenagos, the Reveler",""));
+ cubeCards.add(new DraftCube.CardIdentity("Yavimaya Elder",""));
+ cubeCards.add(new DraftCube.CardIdentity("Yosei, the Morning Star",""));
+ cubeCards.add(new DraftCube.CardIdentity("Young Pyromancer",""));
+ cubeCards.add(new DraftCube.CardIdentity("Zealous Conscripts",""));
+ }
+}
diff --git a/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml b/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml
index d67232ea2a5..0238ba6ea3e 100644
--- a/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml
+++ b/Mage.Server.Plugins/Mage.Tournament.Constructed/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-tournament-constructed
diff --git a/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml b/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml
index b1b5149927c..7abb9bbc966 100644
--- a/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml
+++ b/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml
@@ -7,7 +7,7 @@
org.mage
mage-server-plugins
- 1.4.22
+ 1.4.23
mage-tournament-sealed
diff --git a/Mage.Server.Plugins/pom.xml b/Mage.Server.Plugins/pom.xml
index 2fdf714fc1c..545f67a4c51 100644
--- a/Mage.Server.Plugins/pom.xml
+++ b/Mage.Server.Plugins/pom.xml
@@ -6,7 +6,7 @@
org.mage
mage-root
- 1.4.22
+ 1.4.23
mage-server-plugins
diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml
index 5ca1ea36fab..88b18aa2161 100644
--- a/Mage.Server/config/config.xml
+++ b/Mage.Server/config/config.xml
@@ -12,6 +12,7 @@
leasePeriod - To turn on server side connection failure detection of remoting clients, it is necessary to satisfy two criteria.
The first is that the client lease period is set and is a value greater than 0. The value is represented in milliseconds.
The client lease period can be set by either the 'clientLeasePeriod' attribute within the Connector configuration or by calling the Connector method
+ socketWriteTimeout - All write operations will time out if they do not complete within the configured period.
maxGameThreads - Number of games that can be started simultanously on the server
maxSecondsIdle - Number of seconds after that a game is auto conceded by the player that was idle for such a time
minUserNameLength - minmal allowed length of a user name to connect to the server
@@ -40,6 +41,7 @@
numAcceptThreads="2"
maxPoolSize="300"
leasePeriod="5000"
+ socketWriteTimeout="10000"
maxGameThreads="10"
maxSecondsIdle="600"
minUserNameLength="3"
@@ -49,7 +51,7 @@
maxPasswordLength="100"
maxAiOpponents="15"
saveGameActivated="false"
- authenticationActivated="true"
+ authenticationActivated="false"
googleAccount=""
mailgunApiKey="key-d93e81f19a9c9ed243ebb7cc9381385c"
mailgunDomain="sandbox401a433f30d445309a5e86b6c53f7812.mailgun.org"
@@ -109,6 +111,7 @@
+
diff --git a/Mage.Server/pom.xml b/Mage.Server/pom.xml
index e1dcd5516f5..5d240e2cc5b 100644
--- a/Mage.Server/pom.xml
+++ b/Mage.Server/pom.xml
@@ -6,7 +6,7 @@
org.mage
mage-root
- 1.4.22
+ 1.4.23
mage-server
diff --git a/Mage.Server/release/config/config.xml b/Mage.Server/release/config/config.xml
index eecf4818630..03b66244b09 100644
--- a/Mage.Server/release/config/config.xml
+++ b/Mage.Server/release/config/config.xml
@@ -12,6 +12,7 @@
leasePeriod - To turn on server side connection failure detection of remoting clients, it is necessary to satisfy two criteria.
The first is that the client lease period is set and is a value greater than 0. The value is represented in milliseconds.
The client lease period can be set by either the 'clientLeasePeriod' attribute within the Connector configuration or by calling the Connector method
+ socketWriteTimeout - All write operations will time out if they do not complete within the configured period.
maxGameThreads - Number of games that can be started simultanously on the server
maxSecondsIdle - Number of seconds after that a game is auto conceded by the player that was idle for such a time
minUserNameLength - minmal allowed length of a user name to connect to the server
@@ -39,6 +40,7 @@
numAcceptThreads="2"
maxPoolSize="300"
leasePeriod="5000"
+ socketWriteTimeout="10000"
maxGameThreads="10"
maxSecondsIdle="600"
minUserNameLength="3"
@@ -106,6 +108,7 @@
+
diff --git a/Mage.Server/src/main/java/mage/server/ChatManager.java b/Mage.Server/src/main/java/mage/server/ChatManager.java
index e77b9b12dd1..e7f921de2b5 100644
--- a/Mage.Server/src/main/java/mage/server/ChatManager.java
+++ b/Mage.Server/src/main/java/mage/server/ChatManager.java
@@ -27,6 +27,10 @@
*/
package mage.server;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import mage.cards.repository.CardInfo;
import mage.cards.repository.CardRepository;
import mage.server.exceptions.UserNotFoundException;
@@ -36,11 +40,6 @@ import mage.view.ChatMessage.MessageType;
import mage.view.ChatMessage.SoundToPlay;
import org.apache.log4j.Logger;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
/**
* @author BetaSteward_at_googlemail.com
*/
@@ -50,7 +49,6 @@ public enum ChatManager {
private static final Logger logger = Logger.getLogger(ChatManager.class);
private static final HashMap userMessages = new HashMap<>();
-
private final ConcurrentHashMap chatSessions = new ConcurrentHashMap<>();
public UUID createChatSession(String info) {
@@ -115,7 +113,7 @@ public enum ChatManager {
}
}
- if (messageType != MessageType.GAME) {
+ if (messageType != MessageType.GAME && !userName.isEmpty()) {
Optional u = UserManager.instance.getUserByName(userName);
if (u.isPresent()) {
@@ -159,7 +157,6 @@ public enum ChatManager {
userMessages.put(userName, message);
-
if (messageType == MessageType.TALK) {
if (user.getChatLockedUntil() != null) {
if (user.getChatLockedUntil().compareTo(Calendar.getInstance().getTime()) > 0) {
@@ -173,8 +170,8 @@ public enum ChatManager {
}
}
- chatSession.broadcast(userName, message, color, withTime, messageType, soundToPlay);
}
+ chatSession.broadcast(userName, message, color, withTime, messageType, soundToPlay);
}
}
@@ -255,11 +252,11 @@ public enum ChatManager {
}
public void sendReconnectMessage(UUID userId) {
- UserManager.instance.getUser(userId).ifPresent(user ->
- chatSessions.values()
- .stream()
- .filter(chat -> chat.hasUser(userId))
- .forEach(chatSession -> chatSession.broadcast(null, user.getName() + " has reconnected", MessageColor.BLUE, true, MessageType.STATUS, null)));
+ UserManager.instance.getUser(userId).ifPresent(user
+ -> chatSessions.values()
+ .stream()
+ .filter(chat -> chat.hasUser(userId))
+ .forEach(chatSession -> chatSession.broadcast(null, user.getName() + " has reconnected", MessageColor.BLUE, true, MessageType.STATUS, null)));
}
@@ -275,6 +272,4 @@ public enum ChatManager {
return new ArrayList<>(chatSessions.values());
}
-
}
-
diff --git a/Mage.Server/src/main/java/mage/server/ChatSession.java b/Mage.Server/src/main/java/mage/server/ChatSession.java
index 8abfdce3344..f7a9c969fbb 100644
--- a/Mage.Server/src/main/java/mage/server/ChatSession.java
+++ b/Mage.Server/src/main/java/mage/server/ChatSession.java
@@ -28,6 +28,7 @@
package mage.server;
import mage.interfaces.callback.ClientCallback;
+import mage.interfaces.callback.ClientCallbackMethod;
import mage.view.ChatMessage;
import mage.view.ChatMessage.MessageColor;
import mage.view.ChatMessage.MessageType;
@@ -61,14 +62,14 @@ public class ChatSession {
}
public void join(UUID userId) {
- UserManager.instance.getUser(userId).ifPresent(user-> {
- if (!clients.containsKey(userId)) {
- String userName = user.getName();
- clients.put(userId, userName);
- broadcast(null, userName + " has joined (" + user.getClientVersion() + ')', MessageColor.BLUE, true, MessageType.STATUS, null);
- logger.trace(userName + " joined chat " + chatId);
- }
- });
+ UserManager.instance.getUser(userId).ifPresent(user -> {
+ if (!clients.containsKey(userId)) {
+ String userName = user.getName();
+ clients.put(userId, userName);
+ broadcast(null, userName + " has joined (" + user.getClientVersion() + ')', MessageColor.BLUE, true, MessageType.STATUS, null);
+ logger.trace(userName + " joined chat " + chatId);
+ }
+ });
}
public void kill(UUID userId, DisconnectReason reason) {
@@ -84,30 +85,9 @@ public class ChatSession {
clients.remove(userId);
logger.debug(userName + '(' + reason.toString() + ')' + " removed from chatId " + chatId);
}
- String message;
- switch (reason) {
- case Disconnected:
- message = " has left XMage";
- break;
- case LostConnection:
- message = " has lost connection";
- break;
- case SessionExpired:
- message = " session expired";
- break;
- case AdminDisconnect:
- message = " was disconnected by the Admin";
- break;
- case ConnectingOtherInstance:
- message = " reconnected and replaced still active old session";
- break;
- case CleaningUp:
- message = null;
- break;
- default:
- message = " left (" + reason.toString() + ')';
- }
- if (message != null) {
+ String message = reason.getMessage();
+
+ if (!message.isEmpty()) {
broadcast(null, userName + message, MessageColor.BLUE, true, MessageType.STATUS, null);
}
}
@@ -118,7 +98,7 @@ public class ChatSession {
public boolean broadcastInfoToUser(User toUser, String message) {
if (clients.containsKey(toUser.getId())) {
- toUser.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(null, message, timeFormatter.format(new Date()), MessageColor.BLUE, MessageType.USER_INFO, null)));
+ toUser.fireCallback(new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage(null, message, timeFormatter.format(new Date()), MessageColor.BLUE, MessageType.USER_INFO, null)));
return true;
}
return false;
@@ -126,10 +106,10 @@ public class ChatSession {
public boolean broadcastWhisperToUser(User fromUser, User toUser, String message) {
if (clients.containsKey(toUser.getId())) {
- toUser.fireCallback(new ClientCallback("chatMessage", chatId,
+ toUser.fireCallback(new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId,
new ChatMessage(fromUser.getName(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER_FROM, SoundToPlay.PlayerWhispered)));
if (clients.containsKey(fromUser.getId())) {
- fromUser.fireCallback(new ClientCallback("chatMessage", chatId,
+ fromUser.fireCallback(new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId,
new ChatMessage(toUser.getName(), message, timeFormatter.format(new Date()), MessageColor.YELLOW, MessageType.WHISPER_TO, null)));
return true;
}
@@ -139,24 +119,20 @@ public class ChatSession {
public void broadcast(String userName, String message, MessageColor color, boolean withTime, MessageType messageType, SoundToPlay soundToPlay) {
if (!message.isEmpty()) {
- HashSet clientsToRemove = null;
- ClientCallback clientCallback = new ClientCallback("chatMessage", chatId, new ChatMessage(userName, message, (withTime ? timeFormatter.format(new Date()) : ""), color, messageType, soundToPlay));
+ HashSet clientsToRemove = new HashSet<>();
+ ClientCallback clientCallback = new ClientCallback(ClientCallbackMethod.CHATMESSAGE, chatId, new ChatMessage(userName, message, (withTime ? timeFormatter.format(new Date()) : ""), color, messageType, soundToPlay));
for (UUID userId : clients.keySet()) {
Optional user = UserManager.instance.getUser(userId);
if (user.isPresent()) {
user.get().fireCallback(clientCallback);
} else {
- if (clientsToRemove == null) {
- clientsToRemove = new HashSet<>();
- }
clientsToRemove.add(userId);
}
}
- if (clientsToRemove != null) {
- for (UUID userIdToRemove : clientsToRemove) {
- clients.remove(userIdToRemove);
- }
+ for (UUID userIdToRemove : clientsToRemove) {
+ clients.remove(userIdToRemove);
}
+
}
}
diff --git a/Mage.Server/src/main/java/mage/server/DisconnectReason.java b/Mage.Server/src/main/java/mage/server/DisconnectReason.java
index c751814f7bb..576c64f2c7e 100644
--- a/Mage.Server/src/main/java/mage/server/DisconnectReason.java
+++ b/Mage.Server/src/main/java/mage/server/DisconnectReason.java
@@ -6,5 +6,20 @@ package mage.server;
*/
public enum DisconnectReason {
- LostConnection, Disconnected, CleaningUp, ConnectingOtherInstance, AdminDisconnect, SessionExpired, Undefined
+ LostConnection(" has lost connection"),
+ Disconnected(" has left XMage"),
+ CleaningUp(" [cleaning up]"),
+ ConnectingOtherInstance(" reconnected and replaced still active old session"),
+ AdminDisconnect(" was disconnected by the Admin"),
+ SessionExpired(" session expired"),
+ Undefined("");
+
+ String message;
+ DisconnectReason(String message){
+ this.message = message;
+ }
+
+ public String getMessage(){
+ return message;
+ }
}
diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java
index 0c28c809177..0d756821670 100644
--- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java
+++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java
@@ -27,6 +27,10 @@
*/
package mage.server;
+import java.security.SecureRandom;
+import java.util.*;
+import java.util.concurrent.ExecutorService;
+import javax.management.timer.Timer;
import mage.MageException;
import mage.cards.decks.DeckCardLists;
import mage.cards.repository.CardInfo;
@@ -45,6 +49,8 @@ import mage.interfaces.ActionWithResult;
import mage.interfaces.MageServer;
import mage.interfaces.ServerState;
import mage.interfaces.callback.ClientCallback;
+import mage.interfaces.callback.ClientCallbackMethod;
+import mage.players.PlayerType;
import mage.players.net.UserData;
import mage.remote.MageVersionException;
import mage.server.draft.CubeFactory;
@@ -63,18 +69,13 @@ import mage.view.ChatMessage.MessageColor;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.log4j.Logger;
-import javax.management.timer.Timer;
-import java.security.SecureRandom;
-import java.util.*;
-import java.util.concurrent.ExecutorService;
-
/**
* @author BetaSteward_at_googlemail.com, noxx
*/
public class MageServerImpl implements MageServer {
private static final Logger logger = Logger.getLogger(MageServerImpl.class);
- private static final ExecutorService callExecutor = ThreadExecutor.getInstance().getCallExecutor();
+ private static final ExecutorService callExecutor = ThreadExecutor.instance.getCallExecutor();
private static final SecureRandom RANDOM = new SecureRandom();
private final String adminPassword;
@@ -161,7 +162,7 @@ public class MageServerImpl implements MageServer {
public boolean connectUser(String userName, String password, String sessionId, MageVersion version, String userIdStr) throws MageException {
try {
if (version.compareTo(Main.getVersion()) != 0) {
- logger.info("MageVersionException: userName=" + userName + ", version=" + version);
+ logger.info("MageVersionException: userName=" + userName + ", version=" + version + " sessionId=" + sessionId);
throw new MageVersionException(version, Main.getVersion());
}
return SessionManager.instance.connectUser(sessionId, userName, password, userIdStr);
@@ -233,8 +234,8 @@ public class MageServerImpl implements MageServer {
String maxAiOpponents = ConfigSettings.instance.getMaxAiOpponents();
if (maxAiOpponents != null) {
int aiPlayers = 0;
- for (String playerType : options.getPlayerTypes()) {
- if (!playerType.equals("Human")) {
+ for (PlayerType playerType : options.getPlayerTypes()) {
+ if (playerType != PlayerType.HUMAN) {
aiPlayers++;
}
}
@@ -282,7 +283,7 @@ public class MageServerImpl implements MageServer {
}
@Override
- public boolean joinTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final String playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException {
+ public boolean joinTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final PlayerType playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException {
return executeWithResult("joinTable", sessionId, new ActionWithBooleanResult() {
@Override
public Boolean execute() throws MageException {
@@ -309,7 +310,7 @@ public class MageServerImpl implements MageServer {
}
@Override
- public boolean joinTournamentTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final String playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException {
+ public boolean joinTournamentTable(final String sessionId, final UUID roomId, final UUID tableId, final String name, final PlayerType playerType, final int skill, final DeckCardLists deckList, final String password) throws MageException, GameException {
return executeWithResult("joinTournamentTable", sessionId, new ActionWithBooleanResult() {
@Override
public Boolean execute() throws MageException {
@@ -989,11 +990,11 @@ public class MageServerImpl implements MageServer {
public ServerState getServerState() throws MageException {
try {
return new ServerState(
- GameFactory.getInstance().getGameTypes(),
- TournamentFactory.getInstance().getTournamentTypes(),
- PlayerFactory.getInstance().getPlayerTypes().toArray(new String[PlayerFactory.getInstance().getPlayerTypes().size()]),
- DeckValidatorFactory.getInstance().getDeckTypes().toArray(new String[DeckValidatorFactory.getInstance().getDeckTypes().size()]),
- CubeFactory.getInstance().getDraftCubes().toArray(new String[CubeFactory.getInstance().getDraftCubes().size()]),
+ GameFactory.instance.getGameTypes(),
+ TournamentFactory.instance.getTournamentTypes(),
+ PlayerFactory.instance.getPlayerTypes().toArray(new PlayerType[PlayerFactory.instance.getPlayerTypes().size()]),
+ DeckValidatorFactory.instance.getDeckTypes().toArray(new String[DeckValidatorFactory.instance.getDeckTypes().size()]),
+ CubeFactory.instance.getDraftCubes().toArray(new String[CubeFactory.instance.getDraftCubes().size()]),
testMode,
Main.getVersion(),
CardRepository.instance.getContentVersionConstant(),
@@ -1116,14 +1117,14 @@ public class MageServerImpl implements MageServer {
@Override
public void toggleActivation(final String sessionId, final String userName) throws MageException {
- execute("toggleActivation", sessionId, () ->
- UserManager.instance.getUserByName(userName).ifPresent(user ->
- {
- user.setActive(!user.isActive());
- if (!user.isActive() && user.isConnected()) {
- SessionManager.instance.disconnectUser(sessionId, user.getSessionId());
- }
- }));
+ execute("toggleActivation", sessionId, ()
+ -> UserManager.instance.getUserByName(userName).ifPresent(user
+ -> {
+ user.setActive(!user.isActive());
+ if (!user.isActive() && user.isConnected()) {
+ SessionManager.instance.disconnectUser(sessionId, user.getSessionId());
+ }
+ }));
}
@Override
@@ -1156,11 +1157,9 @@ public class MageServerImpl implements MageServer {
@Override
public void sendFeedbackMessage(final String sessionId, final String username, final String title, final String type, final String message, final String email) throws MageException {
if (title != null && message != null) {
- execute("sendFeedbackMessage", sessionId, () ->
- SessionManager.instance.getSession(sessionId).ifPresent(
- session -> FeedbackServiceImpl.instance.feedback(username, title, type, message, email, session.getHost())
-
-
+ execute("sendFeedbackMessage", sessionId, ()
+ -> SessionManager.instance.getSession(sessionId).ifPresent(
+ session -> FeedbackServiceImpl.instance.feedback(username, title, type, message, email, session.getHost())
));
}
}
@@ -1171,9 +1170,9 @@ public class MageServerImpl implements MageServer {
execute("sendBroadcastMessage", sessionId, () -> {
for (User user : UserManager.instance.getUsers()) {
if (message.toLowerCase(Locale.ENGLISH).startsWith("warn")) {
- user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.RED)));
+ user.fireCallback(new ClientCallback(ClientCallbackMethod.SERVER_MESSAGE, null, new ChatMessage("SERVER", message, null, MessageColor.RED)));
} else {
- user.fireCallback(new ClientCallback("serverMessage", null, new ChatMessage("SERVER", message, null, MessageColor.BLUE)));
+ user.fireCallback(new ClientCallback(ClientCallbackMethod.SERVER_MESSAGE, null, new ChatMessage("SERVER", message, null, MessageColor.BLUE)));
}
}
}, true);
@@ -1251,6 +1250,7 @@ public class MageServerImpl implements MageServer {
}
private static class MyActionWithNullNegativeResult extends ActionWithNullNegativeResult