grant {
  permission "java.util.PropertyPermission" "idea.launcher.*", "read";
  permission "java.util.PropertyPermission" "slf4j.detectLoggerNameMismatch", "read";
  permission "java.util.PropertyPermission" "user.home", "read";
  permission "java.util.PropertyPermission" "java.runtime.name", "read";
  permission "java.util.PropertyPermission" "java.runtime.version", "read";
  permission "java.util.PropertyPermission" "sun.arch.data.model", "read";
  permission "java.util.PropertyPermission" "ignoreDevMsg", "read";
  permission "java.util.PropertyPermission" "baseCryptoNetwork", "read";
  permission "java.util.PropertyPermission" "appDataDir", "read";
  permission "java.util.PropertyPermission" "logLevel", "read";
  permission "java.util.PropertyPermission" "storageDir", "read";
  permission "java.util.PropertyPermission" "keyStorageDir", "read";
  permission "java.util.PropertyPermission" "dumpStatistics", "read";
  permission "java.util.PropertyPermission" "torDir", "read";
  permission "java.util.PropertyPermission" "maxConnections", "read";
  permission "java.util.PropertyPermission" "networkId", "read";
  permission "java.util.PropertyPermission" "banList", "read";
  permission "java.util.PropertyPermission" "socks5ProxyBtcAddress", "read";
  permission "java.util.PropertyPermission" "socks5ProxyHttpAddress", "read";
  permission "java.util.PropertyPermission" "useragent.name", "read";
  permission "java.util.PropertyPermission" "useragent.version", "read";
  permission "java.util.PropertyPermission" "walletDir", "read";
  permission "java.util.PropertyPermission" "useTorForXmr", "read";
  permission "java.util.PropertyPermission" "providers", "read";
  permission "java.util.PropertyPermission" "rpcUser", "read";
  permission "java.util.PropertyPermission" "rpcPassword", "read";
  permission "java.util.PropertyPermission" "rpcPort", "read";
  permission "java.util.PropertyPermission" "rpcBlockPort", "read";
  permission "java.util.PropertyPermission" "rpcWalletPort", "read";
  permission "java.util.PropertyPermission" "logback.*", "read";
  permission "java.util.PropertyPermission" "org.apache.commons.logging.*", "read";
  permission "java.util.PropertyPermission" "spring.getenv.ignore", "read";
  permission "java.util.PropertyPermission" "javafx.toolkit", "read";
  permission "java.util.PropertyPermission" "guice.custom.loader", "read";
  permission "java.util.PropertyPermission" "cglib.debugLocation", "read";
  permission "java.util.PropertyPermission" "useLocalhost", "read";
  permission "java.util.PropertyPermission" "nodePort", "read";
  permission "java.util.PropertyPermission" "seedNodes", "read";
  permission "java.util.PropertyPermission" "bitcoinRegtestHost", "read";
  permission "java.util.PropertyPermission" "xmrNodes", "read";
  permission "java.util.PropertyPermission" "appName", "read";
  permission "java.util.PropertyPermission" "socks5DiscoverMode", "read";
  permission "java.util.PropertyPermission" "priceFeedProviders", "read";
  permission "java.util.PropertyPermission" "maxMemory", "read";

  /* Why ??? no permission exceptions, no dependency in haveno nor in bitcoinj. Local problem? */
  permission "java.util.PropertyPermission" "com.google.appengine.runtime.environment", "read";

  permission "java.lang.RuntimePermission" "accessDeclaredMembers";
  permission "java.lang.RuntimePermission" "setDefaultUncaughtExceptionHandler";
  permission "java.lang.RuntimePermission" "accessClassInPackage.sun.misc";
  permission "java.lang.RuntimePermission" "accessClassInPackage.sun.util.logging.resources";
  permission "java.lang.RuntimePermission" "accessClassInPackage.com.sun.javafx.tk.quantum";
  permission "java.lang.RuntimePermission" "accessClassInPackage.sun.reflect";
  permission "java.lang.RuntimePermission" "getProtectionDomain";
  permission "java.lang.RuntimePermission" "setContextClassLoader";
  permission "java.lang.RuntimePermission" "shutdownHooks";
  permission "java.lang.RuntimePermission" "getenv.logLevel";
  permission "java.lang.RuntimePermission" "getenv.storageDir";
  permission "java.lang.RuntimePermission" "getenv.keyStorageDir";
  permission "java.lang.RuntimePermission" "getenv.dumpStatistics";
  permission "java.lang.RuntimePermission" "getenv.torDir";
  permission "java.lang.RuntimePermission" "getenv.maxConnections";
  permission "java.lang.RuntimePermission" "getenv.networkId";
  permission "java.lang.RuntimePermission" "getenv.banList";
  permission "java.lang.RuntimePermission" "getenv.socks5ProxyBtcAddress";
  permission "java.lang.RuntimePermission" "getenv.socks5ProxyHttpAddress";
  permission "java.lang.RuntimePermission" "getenv.useragent.name";
  permission "java.lang.RuntimePermission" "getenv.useragent.version";
  permission "java.lang.RuntimePermission" "getenv.walletDir";
  permission "java.lang.RuntimePermission" "getenv.useTorForXmr";
  permission "java.lang.RuntimePermission" "getenv.providers";
  permission "java.lang.RuntimePermission" "getenv.rpcPassword";
  permission "java.lang.RuntimePermission" "getenv.rpcUser";
  permission "java.lang.RuntimePermission" "getenv.rpcPort";
  permission "java.lang.RuntimePermission" "getenv.rpcBlockPort";
  permission "java.lang.RuntimePermission" "getenv.rpcWalletPort";
  permission "java.lang.RuntimePermission" "getenv.ignoreDevMsg";
  permission "java.lang.RuntimePermission" "getenv.ignoreDevMsg";
  permission "java.lang.RuntimePermission" "getenv.baseCryptoNetwork";
  permission "java.lang.RuntimePermission" "getenv.appDataDir";
  permission "java.lang.RuntimePermission" "getenv.socks5DiscoverMode";
  permission "java.lang.RuntimePermission" "getenv.priceFeedProviders";
  permission "java.lang.RuntimePermission" "getenv.seedNodes";
  permission "java.lang.RuntimePermission" "getenv.bitcoinRegtestHost";
  permission "java.lang.RuntimePermission" "getenv.xmrNodes";
  permission "java.lang.RuntimePermission" "getenv.maxMemory";
  permission "java.lang.RuntimePermission" "getClassLoader";
  permission "java.lang.RuntimePermission" "accessUserInformation";
  permission "java.lang.RuntimePermission" "loadLibrary.javasecp256k1";
  permission "java.lang.RuntimePermission" "modifyThread";

  /* user data dir for Mac, Linux, Windows */
  permission "java.io.FilePermission" "${user.home}${/}Library${/}Application Support${/}-", "read,write,delete";
  permission "java.io.FilePermission" "${user.home}${/}.local${/}share${/}haveno-", "read,write,delete";
  permission "java.io.FilePermission" "${appdata}${/}haveno-", "read,write,delete";

  /* temp dir Mac, Linux, Windows TODO */
  permission "java.io.FilePermission" "/var/folders/-", "read,write,delete";

  /* only for dev
  permission "java.io.FilePermission" "${user.home}${/}.m2${/}-", "read";
  permission "java.io.FilePermission" "/Users/me/dev/bitcoin_projects/haveno/-", "read";
  permission "java.lang.reflect.ReflectPermission" "suppressAccessChecks";
*/


  permission "java.net.SocketPermission" "127.0.0.1:*", "listen,connect,resolve, accept";
  permission "java.net.URLPermission" "http://95.85.11.205:8080/all", "GET:User-Agent";
  permission "java.net.URLPermission" "http://95.85.11.205:8080/getFees", "GET:User-Agent";
  permission "java.net.URLPermission" "http://95.85.11.205:8080/getAllMarketPrices", "GET:User-Agent";
  permission "java.net.SocketPermission" "*:8333", "connect,resolve";
  permission "java.net.SocketPermission" "*.onion:80", "connect,resolve";

  permission "java.awt.AWTPermission" "accessSystemTray";
  permission "java.awt.AWTPermission" "showWindowWithoutWarningBanner";
  permission "java.security.SecurityPermission" "insertProvider";
  permission "java.util.logging.LoggingPermission" "control";
};
