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.*;
import java.text.NumberFormat;
class main {
static void dm_pulseAudio_setDefaultSinkAndSwitchAllClients(int sinkIndex) {
pulseAudio_setDefaultSink(sinkIndex);
for (Object program : (Collection) dm_requireAndCall("#1027073/ListPlayingPrograms", "list"))
pulseAudio_moveSinkInput(getInt("index",program), sinkIndex);
}
static void dm_pulseAudio_setDefaultSinkAndSwitchAllClients(String sinkName) {
Integer index = reverseLookupIC(dm_systemAudioSinkNames(), sinkName);
if (index != null) {
print("Switching default sink to: " + sinkName);
dm_pulseAudio_setDefaultSinkAndSwitchAllClients(index);
}
}
static String pulseAudio_setDefaultSink(int index) {
return backtick("pactl set-default-sink " + index);
}
static Object dm_requireAndCall(String moduleLibID, String method, Object... args) {
return dm_requireAndCallModule(moduleLibID, method, args);
}
static String pulseAudio_moveSinkInput(int programIndex, int sinkIndex) {
return backtick_verbose("pacmd move-sink-input " + programIndex + " " + sinkIndex);
}
static int getInt(List c, int i) {
return toInt(get(c, i));
}
static int getInt(Map map, Object key) {
return toInt(mapGet(map, key));
}
static int getInt(Object o, String field) {
return toInt(getOpt(o, (String) field));
}
static int getInt(String field, Object o) {
return getInt(o, field);
}
static A reverseLookupIC(String value, Map map) {
return reverseLookupCI(value, map);
}
static A reverseLookupIC(Map map, String value) {
return reverseLookupCI(map, value);
}
static Map dm_systemAudioSinkNames() {
Collection l = (Collection) (dm_requireAndCall("#1027072/ListAudioSinks", "list"));
return orderedFieldToFieldIndex(l, "index", "description");
}
static volatile StringBuffer local_log = new StringBuffer(); // not redirected
static volatile Appendable print_log = local_log; // might be redirected, e.g. to main bot
// in bytes - will cut to half that
static volatile int print_log_max = 1024*1024;
static volatile int local_log_max = 100*1024;
static boolean print_silent = false; // total mute if set
static Object print_byThread_lock = new Object();
static volatile ThreadLocal