Merge "personal/q3k/minecraft: add and deploy bridge"
diff --git a/WORKSPACE b/WORKSPACE
index d3755c0..a2125c8 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -2090,3 +2090,8 @@
     commit = "06500030e7d26826f68caa5ca7d98c315c4caa28",
     importpath = "github.com/gabriel-vasile/mimetype",
 )
+go_repository(
+    name = "com_github_kevinburke_go_bindata",
+    commit = "a606d617e1d1546a2342de6fc4ed95c78e171d68",
+    importpath = "github.com/kevinburke/go-bindata",
+)
diff --git a/bgpwtf/invoice/templates/invoice_en.html b/bgpwtf/invoice/templates/invoice_en.html
index d661732..6a92022 100644
--- a/bgpwtf/invoice/templates/invoice_en.html
+++ b/bgpwtf/invoice/templates/invoice_en.html
@@ -142,7 +142,7 @@
                     {{ if .USCustomer }}
                     <li>EIN: {{ .InvoiceeVAT }}</li>
                     <li><b>(VAT zero rate)</b></li>
-                    {{ else }}
+                    {{ else if .InvoiceeVAT }}
                     <li><b>NIP:</b> {{ .InvoiceeVAT }}</li>
                     {{ end }}
 
diff --git a/bgpwtf/invoice/templates/invoice_pl.html b/bgpwtf/invoice/templates/invoice_pl.html
index df49da8..15f5d08 100644
--- a/bgpwtf/invoice/templates/invoice_pl.html
+++ b/bgpwtf/invoice/templates/invoice_pl.html
@@ -143,7 +143,7 @@
                     {{ if .USCustomer }}
                     <li>EIN: {{ .InvoiceeVAT }}</li>
                     <li><b>(VAT zero rate)</b></li>
-                    {{ else }}
+                    {{ else if .InvoiceeVAT }}
                     <li><b>NIP:</b> {{ .InvoiceeVAT }}</li>
                     {{ end }}
 
diff --git a/cluster/kube/cluster.jsonnet b/cluster/kube/cluster.jsonnet
index 71537d6..864a19f 100644
--- a/cluster/kube/cluster.jsonnet
+++ b/cluster/kube/cluster.jsonnet
@@ -278,6 +278,7 @@
                 cccampix: k0.cockroach.waw2.Client("cccampix"),
                 cccampixDev: k0.cockroach.waw2.Client("cccampix-dev"),
                 buglessDev: k0.cockroach.waw2.Client("bugless-dev"),
+                sso: k0.cockroach.waw2.Client("sso"),
             },
         },
         ceph: {
diff --git a/cluster/kube/lib/calico.libsonnet b/cluster/kube/lib/calico.libsonnet
index 28435ad..b5c83a7 100644
--- a/cluster/kube/lib/calico.libsonnet
+++ b/cluster/kube/lib/calico.libsonnet
@@ -23,10 +23,10 @@
         local cfg = env.cfg,
         cfg:: {
             namespace: "kube-system",
-            version: "v3.4.0",
-            imageController: "quay.io/calico/kube-controllers:" + cfg.version,
-            imageCNI: "quay.io/calico/cni:" + cfg.version,
-            imageNode: "quay.io/calico/node:" + cfg.version,
+            version: "v3.14.0",
+            imageController: "calico/kube-controllers:" + cfg.version,
+            imageCNI: "calico/cni:" + cfg.version,
+            imageNode: "calico/node:" + cfg.version,
             // TODO(q3k): Separate etcd for calico
             etcd: {
                 endpoints: ["https://bc01n%02d.hswaw.net:2379" % n for n in std.range(1, 3)],
@@ -54,10 +54,12 @@
                 calico_backend: "bird",
                 veth_mtu: "1440",
 
+                typha_service_name: "none",
+
                 cni_network_config: |||
                    {
                      "name": "k8s-pod-network",
-                     "cniVersion": "0.3.0",
+                     "cniVersion": "0.3.1",
                      "plugins": [
                        {
                          "type": "calico",
@@ -66,6 +68,7 @@
                          "etcd_key_file": "__ETCD_KEY_FILE__",
                          "etcd_cert_file": "__ETCD_CERT_FILE__",
                          "etcd_ca_cert_file": "__ETCD_CA_CERT_FILE__",
+                         "datastore_type": "etcdv3",
                          "mtu": __CNI_MTU__,
                          "ipam": {
                              "type": "calico-ipam"
@@ -81,6 +84,10 @@
                          "type": "portmap",
                          "snat": true,
                          "capabilities": {"portMappings": true}
+                       },
+                       {
+                         "type": "bandwidth",
+                         "capabilities": {"bandwidth": true}
                        }
                      ]
                    }
@@ -116,13 +123,38 @@
                 {
                     apiGroups: [""],
                     resources: ["endpoints", "services"],
-                    verbs: ["watch", "list"],
+                    verbs: ["watch", "list", "get"],
+                },
+                {
+                    apiGroups: [""],
+                    resources: ["configmaps"],
+                    verbs: ["get"],
                 },
                 {
                     apiGroups: [""],
                     resources: ["nodes/status"],
+                    verbs: ["patch", "update"],
+                },
+                {
+                    apiGroups: ["networking.k8s.io"],
+                    resources: ["networkpolicies"],
+                    verbs: ["watch", "list"],
+                },
+                {
+                    apiGroups: [""],
+                    resources: ["pods", "namespaces", "serviceaccounts"],
+                    verbs: ["watch", "list"],
+                },
+                {
+                    apiGroups: [""],
+                    resources: ["pods/status"],
                     verbs: ["patch"],
                 },
+                {
+                    apiGroups: [""],
+                    resources: ["nodes"],
+                    verbs: ["get", "list", "watch"],
+                },
             ],
         },
 
@@ -138,8 +170,8 @@
             rules: [
                 {
                     apiGroups: [""],
-                    resources: ["pods", "nodes", "namespaces", "serviceaccounts"],
-                    verbs: ["watch", "list"],
+                    resources: ["nodes", "pods", "namespaces", "serviceaccounts"],
+                    verbs: ["watch", "list", "get"],
                 },
                 {
                     apiGroups: ["networking.k8s.io"],
@@ -241,6 +273,7 @@
                                     CNI_MTU: kube.ConfigMapRef(env.cm, "veth_mtu"),
                                     CNI_NET_DIR: "/opt/cni/conf",
                                     SLEEP: "false",
+                                    KUBERNETES_NODE_NAME: { fieldRef: { fieldPath: "spec.nodeName" } },
                                 },
                                 volumeMounts_: {
                                     cni_bin: { mountPath: "/host/opt/cni/bin" },
@@ -253,12 +286,13 @@
                             calicoNode: kube.Container("calico-node") {
                                 image: cfg.imageNode,
                                 env_: {
+                                    DATASTORE_TYPE: "etcdv3",
                                     ETCD_ENDPOINTS: kube.ConfigMapRef(env.cm, "etcd_endpoints"),
                                     ETCD_CA_CERT_FILE: kube.ConfigMapRef(env.cm, "etcd_ca"),
                                     ETCD_KEY_FILE: kube.ConfigMapRef(env.cm, "etcd_key"),
                                     ETCD_CERT_FILE: kube.ConfigMapRef(env.cm, "etcd_cert"),
                                     CALICO_K8S_NODE_REF: kube.FieldRef("spec.nodeName"),
-                                    CALICO_NETWORK_BACKEND: kube.ConfigMapRef(env.cm, "calico_backend"),
+                                    CALICO_NETWORKING_BACKEND: kube.ConfigMapRef(env.cm, "calico_backend"),
                                     CLUSTER_TYPE: "k8s,bgp",
                                     IP: "autodetect",
                                     IP_AUTODETECTION_METHOD: "can-reach=185.236.240.1",
@@ -272,6 +306,7 @@
                                     FELIX_HEALTHENABLED: "true",
                                     FELIX_HEALTHHOST: "127.0.0.1",
                                     CALICO_ADVERTISE_CLUSTER_IPS: "10.10.12.0/24",
+                                    KUBERNETES_NODE_NAME: { fieldRef: { fieldPath: "spec.nodeName" } },
                                 },
                                 securityContext: {
                                     privileged: true,
@@ -280,10 +315,8 @@
                                     requests: { cpu: "250m" },
                                 },
                                 livenessProbe: {
-                                    httpGet: {
-                                        path: "/liveness",
-                                        port: 9099,
-                                        host: "127.0.0.1",
+                                    exec: {
+                                        command: ["/bin/calico-node", "-bird-live", "-felix-live"],
                                     },
                                     periodSeconds: 10,
                                     initialDelaySeconds: 10,
diff --git a/cluster/tools/calicoctl.sh b/cluster/tools/calicoctl.sh
index dc38998..30fe652 100755
--- a/cluster/tools/calicoctl.sh
+++ b/cluster/tools/calicoctl.sh
@@ -8,12 +8,12 @@
 fi
 
 ETCD_ENDPOINTS="https://bc01n01.hswaw.net:2379,https://bc01n01.hswaw.net:2379,https://bc01n01.hswaw.net:2379"
-ETCD_KEY_FILE="$hscloud_root/cluster/secrets/plain/kube-calico.key"
-ETCD_CERT_FILE="$hscloud_root/cluster/certs/kube-calico.crt"
-ETCD_CA_CERT_FILE="$hscloud_root/cluster/certs/ca.crt"
+ETCD_KEY_FILE="$hscloud_root/cluster/secrets/plain/etcd-calico.key"
+ETCD_CERT_FILE="$hscloud_root/cluster/certs/etcd-calico.cert"
+ETCD_CA_CERT_FILE="$hscloud_root/cluster/certs/ca-etcd.crt"
 
 if [ ! -f "$ETCD_KEY_FILE" ] ; then
-        secretstore decrypt "$hscloud_root/cluster/secrets/cipher/kube-calico.key" > "$ETCD_KEY_FILE"
+        secretstore decrypt "$hscloud_root/cluster/secrets/cipher/etcd-calico.key" > "$ETCD_KEY_FILE"
 fi
 
 export ETCD_ENDPOINTS
diff --git a/personal/vuko/shells/README.rst b/personal/vuko/shells/README.rst
new file mode 100644
index 0000000..5e81d45
--- /dev/null
+++ b/personal/vuko/shells/README.rst
@@ -0,0 +1,9 @@
+Hosting for Hackerspace Three Shell System announcement. Currently uploading
+is performed using sftp.
+
+.. code::bash
+    scp index.html shells@185.236.240.58:index.html
+
+TODO:
+    * web interface for shells rotation
+    * access for other members?
diff --git a/personal/vuko/shells/create-secrets.py b/personal/vuko/shells/create-secrets.py
new file mode 100644
index 0000000..7d5df82
--- /dev/null
+++ b/personal/vuko/shells/create-secrets.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+""" generate ssh keys for shells SFTP container """
+from pathlib import Path
+from subprocess import run
+import json
+import tempfile
+
+with tempfile.TemporaryDirectory() as tmp:
+    tmp = Path(tmp).absolute()
+    keyfile = tmp.joinpath("ssh_host_ed25519_key")
+    run(["ssh-keygen", "-f", keyfile, "-N", "", "-t", "ed25519"], check=True)
+
+    # https://kubernetes.io/docs/concepts/configuration/secret/#generating-a-secret-from-files
+    generator = {
+        "secretGenerator": [
+            {
+                "name": "shells-ssh-host-key",
+                "files": [
+                    str(f.relative_to(tmp))
+                    for f in [keyfile, keyfile.with_suffix(".pub")]
+                ],
+            }
+        ]
+    }
+    tmp.joinpath("kustomization.yaml").write_text(json.dumps(generator))
+    run(["kubectl", "-n", "personal-vuko", "apply", "-k", tmp], check=True)
diff --git a/personal/vuko/shells/prod.jsonnet b/personal/vuko/shells/prod.jsonnet
new file mode 100644
index 0000000..463087e
--- /dev/null
+++ b/personal/vuko/shells/prod.jsonnet
@@ -0,0 +1,163 @@
+# this is libjsonnet library for kubernetes related things
+local kube = import '../../../kube/kube.libsonnet';
+
+{
+    local shells = self,
+    local cfg = shells.cfg,
+
+    # namespace defining parameters used by other functions
+    # double colon "::" prevents it from appearing in output file
+    cfg:: {
+        namespace: "personal-vuko",
+        appName: "three-shell-system",
+        domain: "shells.vuko.pl",
+
+        nginx_tag: "latest",
+        nginx_image: "nginxinc/nginx-unprivileged:stable-alpine",
+
+        storageClassName: "waw-hdd-redundant-2",
+
+        resources: {
+            requests: {
+                cpu: "25m",
+                memory: "50Mi",
+            },
+            limits: {
+                cpu: "100m",
+                memory: "200Mi",
+            },
+        },
+    },
+
+    # kubernete namespace personal-${name} for personal usage
+    namespace: kube.Namespace(cfg.namespace),
+
+    # function used for configuring components metatada
+    metadata(component):: {
+        namespace: cfg.namespace,
+        labels: {
+            "app.kubernetes.io/name": cfg.appName,
+            "app.kubernetes.io/managed-by": "kubecfg",
+            "app.kubernetes.io/component": component,
+        },
+    },
+    
+    # component - persistant (non volatile) memory
+    # https://kubernetes.io/docs/concepts/storage/persistent-volumes/
+    dataVolume: kube.PersistentVolumeClaim("html-data") {
+        # override default PersistentVolumeClaim metatada with values defined
+        # in medadata function prevoiusly created
+        # "+" sign before means override
+        metadata+: shells.metadata("html-data"),
+        spec+: {
+            storageClassName: cfg.storageClassName,
+            # can be connected to multiple containers
+            accessModes: [ "ReadWriteMany" ],
+            resources: {
+                requests: {
+                    # amount of storage space: 500Mb
+                    storage: "500Mi",
+                },
+            },
+        },
+    },
+
+    # deployment declares pods
+    # https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
+    deployment: kube.Deployment("shells") {
+        metadata+: shells.metadata("shells"),
+        spec+: {
+            replicas: 1,
+            template+: {
+                spec+: {
+                    # names ending with _ have special meaning in this context
+                    # this is specified in ../../../kube/kube.upstream.jsonnet
+                    # volumes_ { key: { ... } } is converted to volumes [{ name: key, ... }]
+                    volumes_: {
+                        # sftp container host keys secrets saved to kubernetes semi-manually using create-secrets.py
+                        # https://kubernetes.io/docs/concepts/configuration/secret/
+                        host_keys: { secret: { secretName: "shells-ssh-host-key-bd65mg4gbt" } },
+                        # sftp container authorized_keys saved to kubernetes using command:
+                        # kubectl -n personal-vuko create secret generic shells-ssh-authorized-keys --from-file="authorized_keys=${HOME}/.ssh/id_ed25519.pub"
+                        authorized_keys: { secret: { secretName: "shells-ssh-authorized-keys", defaultMode: 256 } },
+                        # to use created volume in deployment we need to claim it
+                        html: kube.PersistentVolumeClaimVolume(shells.dataVolume),
+                    },
+                    # here are containers defined
+                    # when they are defined in one deployment 
+                    containers_: {
+                        shells: kube.Container("nginx") {
+                            image: cfg.nginx_image,
+                            ports_: {
+                                http: { containerPort: 80 },
+                            },
+                            resources: cfg.resources,
+                            volumeMounts_: {
+                                html: { mountPath: "/usr/share/nginx/html" },
+                            },
+                        },
+                        sftp: kube.Container("sftp") {
+                            image: "registry.k0.hswaw.net/vuko/hs-shells-sftp:latest",
+                            ports_: {
+                                sftp: { containerPort: 2222 },
+                            },
+                            command: [ "/bin/start" ],
+                            resources: cfg.resources,
+                            securityContext: {
+                                # specify uid of user running command
+                                runAsUser: 1,
+                            },
+                            volumeMounts_: {
+                                # here volumes defined in volumes_ can be mounted
+                                host_keys: { mountPath: "/etc/ssh/host" },
+                                authorized_keys: { mountPath: "/etc/ssh/auth" },
+                                html: { mountPath: "/data" },
+                            },
+                        },
+                    },
+                },
+            },
+        },
+    },
+
+    # defining a service of type LoadBancer gives you acces from internet
+    # run: kubectl -n personal-${user} get services to see ip address
+    svc: kube.Service("shells") {
+        metadata+: shells.metadata("shells"),
+        target_pod:: shells.deployment.spec.template,
+        spec+: {
+            ports: [
+                { name: "http", port: 80, targetPort: 8080, protocol: "TCP" },
+                { name: "sftp", port: 22, targetPort: 2222, protocol: "TCP" },
+            ],
+            type: "LoadBalancer",
+            externalTrafficPolicy: "Local",
+        },
+    },
+
+    # ingress creates VirtualHost on ingress.k0.hswaw.net forwaring http(s)
+    # requests to your domain to specified Pod/container
+    ingress: kube.Ingress("frontend") {
+        metadata+: shells.metadata("frontend") {
+            annotations+: {
+                "kubernetes.io/tls-acme": "true",
+                "certmanager.k8s.io/cluster-issuer": "letsencrypt-prod",
+            },
+        },
+        spec+: {
+            tls: [
+                { hosts: [cfg.domain], secretName: "shells-frontend-tls"}
+            ],
+            rules: [
+                {
+                    host: cfg.domain,
+                    http: {
+                        paths: [
+                            { path: "/", backend: shells.svc.name_port },
+                        ],
+                    },
+                },
+            ],
+        },
+    },
+}
diff --git a/personal/vuko/shells/sftp.nix b/personal/vuko/shells/sftp.nix
new file mode 100644
index 0000000..706dc47
--- /dev/null
+++ b/personal/vuko/shells/sftp.nix
@@ -0,0 +1,75 @@
+{ pkgs ? import <nixpkgs> {} }:
+let
+  #dockertarpusher = pkgs.python37Packages.buildPythonPackage {
+  #  pname = "dockertarpusher";
+  #  version = "0.16";
+  #  src = pkgs.fetchFromGitHub {
+  #    owner = "Razikus";
+  #    repo = "dockerregistrypusher";
+  #    rev = "217894b79181a9a02ebc6744e0628777a0f89c36";
+  #    sha256 = "09cqzd9gz42xw30x1jp9mx056k25i20kjzzdg3bk78a4bis29kd4";
+  #  };
+  #  propagatedBuildInputs = with pkgs; [
+  #    python37Packages.requests
+  #  ];
+  #};
+  #hsregistry_push = import ./registrypush {};
+  config = pkgs.runCommand "sshd_config" {} ''
+    mkdir -p $out/etc/ssh/
+    cp ${./sshd_config} $out/etc/ssh/sshd_config
+    #cp ${./test_keys/test_host_key} $out/etc/ssh/ssh_host_ed25519_key
+    #cp ${./test_keys/test_host_key.pub} $out/etc/ssh/ssh_host_ed25519_key.pub
+    #cp ${./test_keys/authorized_keys} $out/etc/ssh/authorized_keys
+  '';
+  name = "vuko/hs-shells-sftp";
+  base = pkgs.dockerTools.buildImage {
+    name = "vuko/ssh-base";
+    tag = "latest";
+    contents = [pkgs.openssh pkgs.busybox];
+  };
+  image = pkgs.dockerTools.buildImage {
+    inherit name;
+    tag = "latest";
+    fromImage = base;
+    contents = [config];
+  
+    runAsRoot = ''
+      #!${pkgs.runtimeShell}
+      mkdir /data/
+      #echo "root:x:0:0::/root:/bin/nologin" > /etc/passwd
+      echo "shells:x:1:1::/data:/bin/sh" >> /etc/passwd
+      mkdir -p /etc/ssh/host/
+      mkdir -p /etc/ssh/auth/
+      mkdir -m 700 /tmp
+      chown 1:1 /tmp
+      
+      cat <<EOF > /bin/start
+      #!/bin/sh
+      cp /etc/ssh/auth/authorized_keys /tmp/authorized_keys
+      /bin/sshd -D -e -f /etc/ssh/sshd_config
+      EOF
+      chmod +x /bin/start
+    '';
+  
+    #https://serverfault.com/questions/344295/is-it-possible-to-run-sshd-as-a-normal-user
+    config = { 
+      Cmd = [ "/bin/start" ];
+      WorkingDir = "/";
+      ExposedPorts =  {
+        "2222/tcp" = {};
+      };
+    };
+  };
+  push = pkgs.writeShellScriptBin "push" ''
+    BASEDIR=$(realpath $(dirname ''${BASH_SOURCE}))
+    docker load < "''${BASEDIR}/../images/sftp.tar.gz"
+    docker tag ${name}:latest registry.k0.hswaw.net/${name}
+    docker push registry.k0.hswaw.net/${name}
+    #exec {hsregistry_push}/bin/hsregistry-push "$BASEDIR/../images/sftp.tar.gz" "$@"
+  '';
+in pkgs.runCommand "hs-shells-sftp" {} ''
+  mkdir $out
+  mkdir -p $out/images $out/bin
+  ln -s ${image} $out/images/sftp.tar.gz
+  install ${push}/bin/push $out/bin/
+''
diff --git a/personal/vuko/shells/sshd_config b/personal/vuko/shells/sshd_config
new file mode 100644
index 0000000..ac4a9ba
--- /dev/null
+++ b/personal/vuko/shells/sshd_config
@@ -0,0 +1,17 @@
+Port 2222
+AddressFamily any
+ListenAddress 0.0.0.0
+#ListenAddress ::
+#UsePrivilegeSeparation no
+UsePAM no
+PermitEmptyPasswords no
+PasswordAuthentication no
+AuthorizedKeysFile /tmp/authorized_keys
+HostKey /etc/ssh/host/ssh_host_ed25519_key
+Subsystem sftp /libexec/sftp-server
+PidFile /tmp/sshd.pid
+
+#ForceCommand internal-sftp
+AllowTcpForwarding no
+X11Forwarding no
+PasswordAuthentication no
diff --git a/third_party/java/BUILD b/third_party/java/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/java/BUILD
diff --git a/third_party/java/maven_install.json b/third_party/java/maven_install.json
new file mode 100644
index 0000000..cc4555c
--- /dev/null
+++ b/third_party/java/maven_install.json
@@ -0,0 +1,1211 @@
+{
+    "dependency_tree": {
+        "conflict_resolution": {},
+        "dependencies": [
+            {
+                "coord": "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                "file": "v1/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar",
+                    "https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.10.1/jackson-core-2.10.1.jar"
+                ],
+                "sha256": "79bffbdcd349f69a5ac252e2b4096131704386af4fa14d95395ea9a0e423cf33"
+            },
+            {
+                "coord": "com.google.android:annotations:4.1.1.4",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar",
+                    "https://repo1.maven.org/maven2/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar"
+                ],
+                "sha256": "ba734e1e84c09d615af6a09d33034b4f0442f8772dec120efb376d86a565ae15"
+            },
+            {
+                "coord": "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                "directDependencies": [
+                    "com.google.protobuf:protobuf-java:3.11.0"
+                ],
+                "dependencies": [
+                    "com.google.protobuf:protobuf-java:3.11.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-common-protos/1.17.0/proto-google-common-protos-1.17.0.jar"
+                ],
+                "sha256": "ad25472c73ee470606fb500b376ae5a97973d5406c2f5c3b7d07fb25b4648b65"
+            },
+            {
+                "coord": "com.google.auth:google-auth-library-credentials:0.20.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials/0.20.0/google-auth-library-credentials-0.20.0.jar"
+                ],
+                "sha256": "8a415273a5dae5c8f9080134e53b9592dc171ca5d13127488c910177c5903bd6"
+            },
+            {
+                "coord": "com.google.auth:google-auth-library-oauth2-http:0.20.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                "directDependencies": [
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "com.google.auth:google-auth-library-credentials:0.20.0",
+                    "com.google.http-client:google-http-client-jackson2:1.34.0",
+                    "com.google.http-client:google-http-client:1.34.0",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "commons-logging:commons-logging:1.2",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "com.google.auth:google-auth-library-credentials:0.20.0",
+                    "io.grpc:grpc-context:1.29.0",
+                    "commons-codec:commons-codec:1.11",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.http-client:google-http-client-jackson2:1.34.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                    "com.google.http-client:google-http-client:1.34.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http/0.20.0/google-auth-library-oauth2-http-0.20.0.jar"
+                ],
+                "sha256": "43e96e8c07285c2887042eda4e35ca96522ef361f6c1843f469039d9ccdc8f8a"
+            },
+            {
+                "coord": "com.google.auto.value:auto-value-annotations:1.7",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar",
+                    "https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations/1.7/auto-value-annotations-1.7.jar"
+                ],
+                "sha256": "b134bab5082e9f49f2b45802573c78e0726e059b645323645da03e328e501f86"
+            },
+            {
+                "coord": "com.google.code.findbugs:jsr305:3.0.2",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
+                    "https://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar"
+                ],
+                "sha256": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7"
+            },
+            {
+                "coord": "com.google.code.gson:gson:2.8.6",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar",
+                    "https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar"
+                ],
+                "sha256": "c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f"
+            },
+            {
+                "coord": "com.google.errorprone:error_prone_annotations:2.3.4",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar",
+                    "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar"
+                ],
+                "sha256": "baf7d6ea97ce606c53e11b6854ba5f2ce7ef5c24dddf0afa18d1260bd25b002c"
+            },
+            {
+                "coord": "com.google.guava:failureaccess:1.0.1",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
+                    "https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar"
+                ],
+                "sha256": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26"
+            },
+            {
+                "coord": "com.google.guava:guava:28.2-android",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                "directDependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/guava/guava/28.2-android/guava-28.2-android.jar",
+                    "https://repo1.maven.org/maven2/com/google/guava/guava/28.2-android/guava-28.2-android.jar"
+                ],
+                "sha256": "1faf214c94723ab9fbadfedd9af88ddc325faf669e68eab04688c3afcf59c037"
+            },
+            {
+                "coord": "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar",
+                    "https://repo1.maven.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar"
+                ],
+                "sha256": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99"
+            },
+            {
+                "coord": "com.google.http-client:google-http-client-jackson2:1.34.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                "directDependencies": [
+                    "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                    "com.google.http-client:google-http-client:1.34.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "commons-logging:commons-logging:1.2",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "commons-codec:commons-codec:1.11",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.fasterxml.jackson.core:jackson-core:2.10.1",
+                    "com.google.http-client:google-http-client:1.34.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2/1.34.0/google-http-client-jackson2-1.34.0.jar"
+                ],
+                "sha256": "c6c2d55048c880f0a26d3e01eb4f1c686284501397793ff6fc8239e0fd368dcc"
+            },
+            {
+                "coord": "com.google.http-client:google-http-client:1.34.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                "directDependencies": [
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.apache.httpcomponents:httpclient:4.5.10",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "commons-logging:commons-logging:1.2",
+                    "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "commons-codec:commons-codec:1.11",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "org.apache.httpcomponents:httpcore:4.4.12",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/http-client/google-http-client/1.34.0/google-http-client-1.34.0.jar"
+                ],
+                "sha256": "376abdc782970145c673446c119bbb158641bca1b311d6098adc238c58be5ed7"
+            },
+            {
+                "coord": "com.google.j2objc:j2objc-annotations:1.3",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar",
+                    "https://repo1.maven.org/maven2/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar"
+                ],
+                "sha256": "21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b"
+            },
+            {
+                "coord": "com.google.protobuf:protobuf-java-util:3.11.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                "directDependencies": [
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.protobuf:protobuf-java:3.11.0"
+                ],
+                "dependencies": [
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "com.google.code.gson:gson:2.8.6"
+                ],
+                "exclusions": [
+                    "com.google.guava:guava",
+                    "com.google.errorprone:error_prone_annotations"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util/3.11.0/protobuf-java-util-3.11.0.jar"
+                ],
+                "sha256": "54b4cb99ec9196f24d04a47f98416274e34aee16ebb860d5655c6c5a069705e5"
+            },
+            {
+                "coord": "com.google.protobuf:protobuf-java:3.11.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar"
+                ],
+                "sha256": "123d8b260cfdbb91a208931c2d3ea0988c6942f4f4d9303b008f005ef3a4124c"
+            },
+            {
+                "coord": "com.google.protobuf:protobuf-java:3.11.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "exclusions": [
+                    "com.google.guava:guava",
+                    "com.google.errorprone:error_prone_annotations"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar",
+                    "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.11.0/protobuf-java-3.11.0.jar"
+                ],
+                "sha256": "123d8b260cfdbb91a208931c2d3ea0988c6942f4f4d9303b008f005ef3a4124c"
+            },
+            {
+                "coord": "com.google.truth:truth:1.0.1",
+                "file": "v1/https/repo1.maven.org/maven2/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                "directDependencies": [
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "junit:junit:4.12",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.googlecode.java-diff-utils:diffutils:1.3.0",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.auto.value:auto-value-annotations:1.7",
+                    "junit:junit:4.12",
+                    "org.hamcrest:hamcrest-core:1.3",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.googlecode.java-diff-utils:diffutils:1.3.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/google/truth/truth/1.0.1/truth-1.0.1.jar",
+                    "https://repo1.maven.org/maven2/com/google/truth/truth/1.0.1/truth-1.0.1.jar"
+                ],
+                "sha256": "1ccf4334e7a94cf00a20a619b5462b53acf3274e00b70498bf5b28a3bc1be9b1"
+            },
+            {
+                "coord": "com.googlecode.java-diff-utils:diffutils:1.3.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar",
+                    "https://repo1.maven.org/maven2/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar"
+                ],
+                "sha256": "61ba4dc49adca95243beaa0569adc2a23aedb5292ae78aa01186fa782ebdc5c2"
+            },
+            {
+                "coord": "com.squareup.okhttp:okhttp:2.7.4",
+                "file": "v1/https/repo1.maven.org/maven2/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                "directDependencies": [
+                    "com.squareup.okio:okio:1.13.0"
+                ],
+                "dependencies": [
+                    "com.squareup.okio:okio:1.13.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar",
+                    "https://repo1.maven.org/maven2/com/squareup/okhttp/okhttp/2.7.4/okhttp-2.7.4.jar"
+                ],
+                "sha256": "c88be9af1509d5aeec9394a818c0fa08e26fad9d64ba134e6f977e0bb20cb114"
+            },
+            {
+                "coord": "com.squareup.okio:okio:1.13.0",
+                "file": "v1/https/repo1.maven.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar",
+                    "https://repo1.maven.org/maven2/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar"
+                ],
+                "sha256": "734269c3ebc5090e3b23566db558f421f0b4027277c79ad5d176b8ec168bb850"
+            },
+            {
+                "coord": "commons-codec:commons-codec:1.11",
+                "file": "v1/https/repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/commons-codec/commons-codec/1.11/commons-codec-1.11.jar",
+                    "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.jar"
+                ],
+                "sha256": "e599d5318e97aa48f42136a2927e6dfa4e8881dff0e6c8e3109ddbbff51d7b7d"
+            },
+            {
+                "coord": "commons-lang:commons-lang:2.6",
+                "file": "v1/https/repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/commons-lang/commons-lang/2.6/commons-lang-2.6.jar",
+                    "https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar"
+                ],
+                "sha256": "50f11b09f877c294d56f24463f47d28f929cf5044f648661c0f0cfbae9a2f49c"
+            },
+            {
+                "coord": "commons-logging:commons-logging:1.2",
+                "file": "v1/https/repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/commons-logging/commons-logging/1.2/commons-logging-1.2.jar",
+                    "https://repo1.maven.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar"
+                ],
+                "sha256": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636"
+            },
+            {
+                "coord": "io.grpc:grpc-api:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                "directDependencies": [
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-api/1.29.0/grpc-api-1.29.0.jar"
+                ],
+                "sha256": "4837824acdd8d576d7d31a862e7391c38a1824cd2224daa68999377fdff9ae3f"
+            },
+            {
+                "coord": "io.grpc:grpc-context:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-context/1.29.0/grpc-context-1.29.0.jar"
+                ],
+                "sha256": "41426f8fa5b5ff6e8cf5d6a7a6e7b1175350bc8c8e11f352e0622e00f99c4a02"
+            },
+            {
+                "coord": "io.grpc:grpc-core:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-core/1.29.0/grpc-core-1.29.0.jar"
+                ],
+                "sha256": "d45e3ba310cf6a5d8170bcc500507977505614583c341d03c7d91658e49cf028"
+            },
+            {
+                "coord": "io.grpc:grpc-netty-shaded:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                "directDependencies": [
+                    "io.grpc:grpc-core:1.29.0"
+                ],
+                "dependencies": [
+                    "io.grpc:grpc-core:1.29.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-netty-shaded/1.29.0/grpc-netty-shaded-1.29.0.jar"
+                ],
+                "sha256": "1e557a2f4b4a1332bb79e7f7354a031491f24e0e45aa493f0d48b555916cf049"
+            },
+            {
+                "coord": "io.grpc:grpc-protobuf-lite:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                "directDependencies": [
+                    "com.google.guava:guava:28.2-android",
+                    "io.grpc:grpc-api:1.29.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "exclusions": [
+                    "com.google.protobuf:protobuf-javalite"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf-lite/1.29.0/grpc-protobuf-lite-1.29.0.jar"
+                ],
+                "sha256": "ae4bbcd9bf7ad4856660807d8cba7ef4ff428f0b615bf663ba308d9a76bcab3c"
+            },
+            {
+                "coord": "io.grpc:grpc-protobuf:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                "directDependencies": [
+                    "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "io.grpc:grpc-protobuf-lite:1.29.0",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "io.grpc:grpc-protobuf-lite:1.29.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-protobuf/1.29.0/grpc-protobuf-1.29.0.jar"
+                ],
+                "sha256": "ee8cef64c7e10dd373aabd3a4b2ec4878e6d5b3ba43cbf55f3876ddaa79266ea"
+            },
+            {
+                "coord": "io.grpc:grpc-services:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                "directDependencies": [
+                    "com.google.protobuf:protobuf-java-util:3.11.0",
+                    "io.grpc:grpc-core:1.29.0",
+                    "io.grpc:grpc-protobuf:1.29.0",
+                    "io.grpc:grpc-stub:1.29.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.api.grpc:proto-google-common-protos:1.17.0",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.protobuf:protobuf-java:3.11.0",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-core:1.29.0",
+                    "com.google.protobuf:protobuf-java-util:3.11.0",
+                    "io.grpc:grpc-context:1.29.0",
+                    "com.google.code.gson:gson:2.8.6",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "io.grpc:grpc-protobuf-lite:1.29.0",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "io.grpc:grpc-stub:1.29.0",
+                    "io.grpc:grpc-protobuf:1.29.0",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-services/1.29.0/grpc-services-1.29.0.jar"
+                ],
+                "sha256": "6bea2f0ec35d3071a12fccc640ca7450f1cd2ce66574456e8deec21f79464681"
+            },
+            {
+                "coord": "io.grpc:grpc-stub:1.29.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                "directDependencies": [
+                    "io.grpc:grpc-api:1.29.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.grpc:grpc-api:1.29.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar",
+                    "https://repo1.maven.org/maven2/io/grpc/grpc-stub/1.29.0/grpc-stub-1.29.0.jar"
+                ],
+                "sha256": "65b01e451013d6c9f2de1392abf47190a397cbbd7f5a45e3cc9df509671a0cf8"
+            },
+            {
+                "coord": "io.netty:netty-buffer:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-buffer/4.1.48.Final/netty-buffer-4.1.48.Final.jar"
+                ],
+                "sha256": "7efc8f98224c703ef09a409e5ddffbe14f5b4b6f527d3836c1647b4d9eff8cec"
+            },
+            {
+                "coord": "io.netty:netty-codec-http2:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec-http2/4.1.48.Final/netty-codec-http2-4.1.48.Final.jar"
+                ],
+                "sha256": "359548f53cf8697ebdfa13a4700f1b9a5585573c64f2d3ed135a3197ebd51579"
+            },
+            {
+                "coord": "io.netty:netty-codec-http:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.48.Final/netty-codec-http-4.1.48.Final.jar"
+                ],
+                "sha256": "aa4b18070e7fc105f0c94a077605687bec48091274c8acc121116692c335edd0"
+            },
+            {
+                "coord": "io.netty:netty-codec-socks:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.48.Final/netty-codec-socks-4.1.48.Final.jar"
+                ],
+                "sha256": "d0dd35f9ac6892a03bb0d38ea32e683993c4308a02de5756bb5a23ecb929f917"
+            },
+            {
+                "coord": "io.netty:netty-codec:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-codec/4.1.48.Final/netty-codec-4.1.48.Final.jar"
+                ],
+                "sha256": "81b4c316163a591b4f74fd2dc23a3ea45359cb817d0a9c4fc7f37dc9edfdbea8"
+            },
+            {
+                "coord": "io.netty:netty-common:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-common/4.1.48.Final/netty-common-4.1.48.Final.jar"
+                ],
+                "sha256": "e44a2369566fd1fa8a0f30b12e2801de8fb405b9d1fa3894a58b6262065a9916"
+            },
+            {
+                "coord": "io.netty:netty-handler-proxy:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-codec-socks:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-codec-http:4.1.48.Final",
+                    "io.netty:netty-codec-socks:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-handler:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.48.Final/netty-handler-proxy-4.1.48.Final.jar"
+                ],
+                "sha256": "f784f331bdb05834390c132d1534724e5371c1a19c7a62217e5f192963a9a92c"
+            },
+            {
+                "coord": "io.netty:netty-handler:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-codec:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-handler/4.1.48.Final/netty-handler-4.1.48.Final.jar"
+                ],
+                "sha256": "757f83c7891ad2ebad209f02d8dbca0121e03f7062c2d4ec9d00eba1a0d403d5"
+            },
+            {
+                "coord": "io.netty:netty-resolver:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-resolver/4.1.48.Final/netty-resolver-4.1.48.Final.jar"
+                ],
+                "sha256": "fb125914398ebef821def3dbb1642f9f360f39d182f00149ef3db845ebf06ad2"
+            },
+            {
+                "coord": "io.netty:netty-tcnative-boringssl-static:2.0.30.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-tcnative-boringssl-static/2.0.30.Final/netty-tcnative-boringssl-static-2.0.30.Final.jar"
+                ],
+                "sha256": "61934ca753be47973fe427d1f483a1b2fbcaf56eefc71519bf35fddb036ee111"
+            },
+            {
+                "coord": "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-transport-native-unix-common:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport-native-unix-common:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.48.Final/netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar"
+                ],
+                "sha256": "7436ecfb442b299af6ecff7ae6a8d3f00fb56e081d20e82b467dad2e6ee8848f"
+            },
+            {
+                "coord": "io.netty:netty-transport-native-unix-common:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-transport:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.48.Final/netty-transport-native-unix-common-4.1.48.Final.jar"
+                ],
+                "sha256": "c4142429437845d966babba5eddce47203e1f256209e455019d2538ebec58b95"
+            },
+            {
+                "coord": "io.netty:netty-transport:4.1.48.Final",
+                "file": "v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                "directDependencies": [
+                    "io.netty:netty-buffer:4.1.48.Final",
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final"
+                ],
+                "dependencies": [
+                    "io.netty:netty-common:4.1.48.Final",
+                    "io.netty:netty-resolver:4.1.48.Final",
+                    "io.netty:netty-buffer:4.1.48.Final"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar",
+                    "https://repo1.maven.org/maven2/io/netty/netty-transport/4.1.48.Final/netty-transport-4.1.48.Final.jar"
+                ],
+                "sha256": "6b4ba9e09a8e060bad2540845491b5fa1ca73614d157860e657f4027c91e72fd"
+            },
+            {
+                "coord": "io.opencensus:opencensus-api:0.24.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                "directDependencies": [
+                    "io.grpc:grpc-context:1.29.0"
+                ],
+                "dependencies": [
+                    "io.grpc:grpc-context:1.29.0"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar",
+                    "https://repo1.maven.org/maven2/io/opencensus/opencensus-api/0.24.0/opencensus-api-0.24.0.jar"
+                ],
+                "sha256": "f561b1cc2673844288e596ddf5bb6596868a8472fd2cb8993953fc5c034b2352"
+            },
+            {
+                "coord": "io.opencensus:opencensus-contrib-grpc-metrics:0.24.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                "directDependencies": [
+                    "com.google.guava:guava:28.2-android",
+                    "io.opencensus:opencensus-api:0.24.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar",
+                    "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-grpc-metrics/0.24.0/opencensus-contrib-grpc-metrics-0.24.0.jar"
+                ],
+                "sha256": "875582e093f11950ad3f4a50b5fee33a008023f7d1e47820a1bef05d23b9ed42"
+            },
+            {
+                "coord": "io.opencensus:opencensus-contrib-http-util:0.24.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                "directDependencies": [
+                    "com.google.guava:guava:28.2-android",
+                    "io.opencensus:opencensus-api:0.24.0"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "io.grpc:grpc-context:1.29.0",
+                    "io.opencensus:opencensus-api:0.24.0",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar",
+                    "https://repo1.maven.org/maven2/io/opencensus/opencensus-contrib-http-util/0.24.0/opencensus-contrib-http-util-0.24.0.jar"
+                ],
+                "sha256": "7155273bbb1ed3d477ea33cf19d7bbc0b285ff395f43b29ae576722cf247000f"
+            },
+            {
+                "coord": "io.perfmark:perfmark-api:0.19.0",
+                "file": "v1/https/repo1.maven.org/maven2/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                "directDependencies": [
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4"
+                ],
+                "dependencies": [
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.errorprone:error_prone_annotations:2.3.4"
+                ],
+                "url": "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar",
+                    "https://repo1.maven.org/maven2/io/perfmark/perfmark-api/0.19.0/perfmark-api-0.19.0.jar"
+                ],
+                "sha256": "b734ba2149712409a44eabdb799f64768578fee0defe1418bb108fe32ea43e1a"
+            },
+            {
+                "coord": "javax.annotation:javax.annotation-api:1.2",
+                "file": "v1/https/repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar",
+                    "https://repo1.maven.org/maven2/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar"
+                ],
+                "sha256": "5909b396ca3a2be10d0eea32c74ef78d816e1b4ead21de1d78de1f890d033e04"
+            },
+            {
+                "coord": "junit:junit:4.12",
+                "file": "v1/https/repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
+                "directDependencies": [
+                    "org.hamcrest:hamcrest-core:1.3"
+                ],
+                "dependencies": [
+                    "org.hamcrest:hamcrest-core:1.3"
+                ],
+                "url": "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/junit/junit/4.12/junit-4.12.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/junit/junit/4.12/junit-4.12.jar",
+                    "https://repo1.maven.org/maven2/junit/junit/4.12/junit-4.12.jar"
+                ],
+                "sha256": "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a"
+            },
+            {
+                "coord": "net.md-5:bungeecord-chat:jar:1.15-SNAPSHOT",
+                "file": "v1/https/oss.sonatype.org/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                "directDependencies": [
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://oss.sonatype.org/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar",
+                    "https://repo1.maven.org/maven2/net/md-5/bungeecord-chat/1.15-SNAPSHOT/bungeecord-chat-1.15-20200509.234557-72.jar"
+                ],
+                "sha256": "fd727533e2629f5383feebe28c33ac168c9d210115c832970d9b4338579ac720"
+            },
+            {
+                "coord": "org.apache.commons:commons-lang3:3.5",
+                "file": "v1/https/repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar",
+                    "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar"
+                ],
+                "sha256": "8ac96fc686512d777fca85e144f196cd7cfe0c0aec23127229497d1a38ff651c"
+            },
+            {
+                "coord": "org.apache.httpcomponents:httpclient:4.5.10",
+                "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                "directDependencies": [
+                    "commons-codec:commons-codec:1.11",
+                    "commons-logging:commons-logging:1.2",
+                    "org.apache.httpcomponents:httpcore:4.4.12"
+                ],
+                "dependencies": [
+                    "commons-logging:commons-logging:1.2",
+                    "commons-codec:commons-codec:1.11",
+                    "org.apache.httpcomponents:httpcore:4.4.12"
+                ],
+                "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar",
+                    "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpclient/4.5.10/httpclient-4.5.10.jar"
+                ],
+                "sha256": "38b9f16f504928e4db736a433b9cd10968d9ec8d6f5d0e61a64889a689172134"
+            },
+            {
+                "coord": "org.apache.httpcomponents:httpcore:4.4.12",
+                "file": "v1/https/repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar",
+                    "https://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.4.12/httpcore-4.4.12.jar"
+                ],
+                "sha256": "ab765334beabf0ea024484a5e90a7c40e8160b145f22d199e11e27f68d57da08"
+            },
+            {
+                "coord": "org.checkerframework:checker-compat-qual:2.5.5",
+                "file": "v1/https/repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar",
+                    "https://repo1.maven.org/maven2/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar"
+                ],
+                "sha256": "11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a"
+            },
+            {
+                "coord": "org.codehaus.mojo:animal-sniffer-annotations:1.18",
+                "file": "v1/https/repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar",
+                    "https://repo1.maven.org/maven2/org/codehaus/mojo/animal-sniffer-annotations/1.18/animal-sniffer-annotations-1.18.jar"
+                ],
+                "sha256": "47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d"
+            },
+            {
+                "coord": "org.hamcrest:hamcrest-core:1.3",
+                "file": "v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar",
+                    "https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
+                ],
+                "sha256": "66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9"
+            },
+            {
+                "coord": "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT",
+                "file": "v1/https/hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                "directDependencies": [
+                    "commons-lang:commons-lang:2.6",
+                    "org.yaml:snakeyaml:1.25",
+                    "com.google.code.gson:gson:2.8.6",
+                    "net.md-5:bungeecord-chat:jar:1.15-SNAPSHOT",
+                    "com.google.guava:guava:28.2-android"
+                ],
+                "dependencies": [
+                    "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava",
+                    "com.google.j2objc:j2objc-annotations:1.3",
+                    "com.google.code.findbugs:jsr305:3.0.2",
+                    "commons-lang:commons-lang:2.6",
+                    "org.yaml:snakeyaml:1.25",
+                    "com.google.code.gson:gson:2.8.6",
+                    "com.google.errorprone:error_prone_annotations:2.3.4",
+                    "com.google.guava:failureaccess:1.0.1",
+                    "net.md-5:bungeecord-chat:jar:1.15-SNAPSHOT",
+                    "com.google.guava:guava:28.2-android",
+                    "org.checkerframework:checker-compat-qual:2.5.5"
+                ],
+                "url": "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar",
+                    "https://repo1.maven.org/maven2/org/spigotmc/spigot-api/1.15.2-R0.1-SNAPSHOT/spigot-api-1.15.2-R0.1-20200509.094510-108.jar"
+                ],
+                "sha256": "243c81927517f29ff2bf51303beba6470cb92ae15f82fadd0d8ba86c5715e5f8"
+            },
+            {
+                "coord": "org.yaml:snakeyaml:1.25",
+                "file": "v1/https/repo1.maven.org/maven2/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                "directDependencies": [],
+                "dependencies": [],
+                "url": "https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                "mirror_urls": [
+                    "https://hub.spigotmc.org/nexus/content/repositories/snapshots/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                    "https://oss.sonatype.org/content/repositories/snapshots/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar",
+                    "https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar"
+                ],
+                "sha256": "b50ef33187e7dc922b26dbe4dd0fdb3a9cf349e75a08b95269901548eee546eb"
+            }
+        ],
+        "version": "0.1.0",
+        "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": 392476608
+    }
+}
diff --git a/tools/secretstore.py b/tools/secretstore.py
index 55af48c..8ff5e2a 100644
--- a/tools/secretstore.py
+++ b/tools/secretstore.py
@@ -10,7 +10,7 @@
 keys = [
     "63DFE737F078657CC8A51C00C29ADD73B3563D82", # q3k
     "482FF104C29294AD1CAF827BA43890A3DE74ECC7", # inf
-    # "F07205946C07EEB2041A72FBC60C64879534F768", # cz2 (expired 2020-01-17)
+    "F07205946C07EEB2041A72FBC60C64879534F768", # cz2
     "0879F9FCA1C836677BB808C870FD60197E195C26", # implr
 ]