import java.util.*;
import java.util.zip.*;
import java.util.List;
import java.util.regex.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.concurrent.locks.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.swing.table.*;
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
import java.lang.ref.*;
import java.lang.management.*;
import java.security.*;
import java.security.spec.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.imageio.*;
import java.math.*;
class main {
static Boolean threadAllocatedMemorySane_cache;
static boolean threadAllocatedMemorySane() { if (threadAllocatedMemorySane_cache == null) threadAllocatedMemorySane_cache = threadAllocatedMemorySane_load(); return threadAllocatedMemorySane_cache; }
static Boolean threadAllocatedMemorySane_load() {
monitorThreadAllocatedMemory();
if (!threadAllocatedMemoryEnabled()) return false;
long n = bytesAllocatedByCurrentThread();
if (n <= 0) return false;
int[] bla = new int[1024];
if (bla == null) return false;
if (bytesAllocatedByCurrentThread() <= n) return false;
return true;
}
static void monitorThreadAllocatedMemory() {
ThreadMXBean bean = threadMXBean();
if (bean instanceof com.sun.management.ThreadMXBean &&
((com.sun.management.ThreadMXBean) bean).isThreadAllocatedMemorySupported())
((com.sun.management.ThreadMXBean) bean).setThreadAllocatedMemoryEnabled(true);
}
static boolean threadAllocatedMemoryEnabled() {
ThreadMXBean bean = threadMXBean();
return bean instanceof com.sun.management.ThreadMXBean &&
((com.sun.management.ThreadMXBean) bean).isThreadAllocatedMemoryEnabled();
}
static long bytesAllocatedByCurrentThread() {
var bean = advancedThreadMXBean();
return bean == null ? 0 : bean.getThreadAllocatedBytes(threadID());
}
static ThreadMXBean threadMXBean_cache;
static ThreadMXBean threadMXBean() { if (threadMXBean_cache == null) threadMXBean_cache = threadMXBean_load(); return threadMXBean_cache; }
static ThreadMXBean threadMXBean_load() {
return ManagementFactory.getThreadMXBean();
}
static com.sun.management.ThreadMXBean advancedThreadMXBean_cache;
static com.sun.management.ThreadMXBean advancedThreadMXBean() { if (advancedThreadMXBean_cache == null) advancedThreadMXBean_cache = advancedThreadMXBean_load(); return advancedThreadMXBean_cache; }
static com.sun.management.ThreadMXBean advancedThreadMXBean_load() {
return optCast(com.sun.management.ThreadMXBean.class, threadMXBean());
}
static long threadID() {
return currentThread().getId();
}
static long threadID(Thread t) {
return t == null ? 0 : t.getId();
}
static A optCast(Class c, Object o) {
return isInstance(c, o) ? (A) o : null;
}
static Thread currentThread() {
return Thread.currentThread();
}
static boolean isInstance(Class type, Object arg) {
return type.isInstance(arg);
}
}