From c8527952f6109ecc0aa7df3ea514f0ee2025dbd9 Mon Sep 17 00:00:00 2001
From: Robert Martin-Legene <robert@martin-legene.dk>
Date: Wed, 21 Oct 2020 04:30:18 -0300
Subject: [PATCH] Majority actualizado para solc 0.7

---
 src/Majority/Majority.compiled.json | 22464 ++++++++++++++++++++++++++
 src/Majority/Majority.sol           |    18 +-
 2 files changed, 22478 insertions(+), 4 deletions(-)
 create mode 100644 src/Majority/Majority.compiled.json

diff --git a/src/Majority/Majority.compiled.json b/src/Majority/Majority.compiled.json
new file mode 100644
index 0000000..d0e93dc
--- /dev/null
+++ b/src/Majority/Majority.compiled.json
@@ -0,0 +1,22464 @@
+{
+  "contracts": {
+    "src/Majority/Majority.sol:Majority": {
+      "abi": "[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"adminChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"voteCast\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"council\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subject\",\"type\":\"address\"}],\"name\":\"isCouncil\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"mayVote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"setTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"voteStart\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votetimeout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
+      "asm": {
+        ".code": [
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "PUSH",
+            "source": 0,
+            "value": "80"
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "PUSH",
+            "source": 0,
+            "value": "40"
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "MSTORE",
+            "source": 0
+          },
+          {
+            "begin": 1748,
+            "end": 1754,
+            "name": "PUSH",
+            "source": 0,
+            "value": "93A80"
+          },
+          {
+            "begin": 1710,
+            "end": 1754,
+            "name": "PUSH",
+            "source": 0,
+            "value": "2"
+          },
+          {
+            "begin": 1710,
+            "end": 1754,
+            "name": "SSTORE",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "CALLVALUE",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "ISZERO",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH [tag]",
+            "source": 0,
+            "value": "1"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "JUMPI",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "REVERT",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "tag",
+            "source": 0,
+            "value": "1"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "JUMPDEST",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH",
+            "source": 0,
+            "value": "40"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "MLOAD",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSHSIZE",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "CODESIZE",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SUB",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSHSIZE",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP4",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "CODECOPY",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "ADD",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH",
+            "source": 0,
+            "value": "40"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "MSTORE",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH",
+            "source": 0,
+            "value": "20"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "LT",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "ISZERO",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH [tag]",
+            "source": 0,
+            "value": "2"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "JUMPI",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "REVERT",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "tag",
+            "source": 0,
+            "value": "2"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "JUMPDEST",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "ADD",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "MLOAD",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "PUSH",
+            "source": 0,
+            "value": "20"
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "ADD",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SWAP3",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SWAP2",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1991,
+            "end": 1995,
+            "name": "PUSH",
+            "source": 0,
+            "value": "E10"
+          },
+          {
+            "begin": 1980,
+            "end": 1987,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 1980,
+            "end": 1995,
+            "name": "LT",
+            "source": 0
+          },
+          {
+            "begin": 1975,
+            "end": 2041,
+            "name": "PUSH [tag]",
+            "source": 0,
+            "value": "5"
+          },
+          {
+            "begin": 1975,
+            "end": 2041,
+            "name": "JUMPI",
+            "source": 0
+          },
+          {
+            "begin": 2034,
+            "end": 2041,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 2010,
+            "end": 2021,
+            "name": "PUSH",
+            "source": 0,
+            "value": "2"
+          },
+          {
+            "begin": 2010,
+            "end": 2041,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 2010,
+            "end": 2041,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2010,
+            "end": 2041,
+            "name": "SSTORE",
+            "source": 0
+          },
+          {
+            "begin": 2010,
+            "end": 2041,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1975,
+            "end": 2041,
+            "name": "tag",
+            "source": 0,
+            "value": "5"
+          },
+          {
+            "begin": 1975,
+            "end": 2041,
+            "name": "JUMPDEST",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2058,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 2073,
+            "end": 2083,
+            "name": "CALLER",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "1"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SLOAD",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "ADD",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP3",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SSTORE",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "1"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SUB",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "MSTORE",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "20"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "KECCAK256",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "ADD",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "100"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "EXP",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SLOAD",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP2",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "MUL",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "NOT",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "AND",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "DUP4",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "PUSH",
+            "source": 0,
+            "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "AND",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "MUL",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "OR",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SWAP1",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "SSTORE",
+            "source": 0
+          },
+          {
+            "begin": 2051,
+            "end": 2086,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1933,
+            "end": 2093,
+            "name": "POP",
+            "source": 0
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "PUSH #[$]",
+            "source": 0,
+            "value": "0000000000000000000000000000000000000000000000000000000000000000"
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "DUP1",
+            "source": 0
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "PUSH [$]",
+            "source": 0,
+            "value": "0000000000000000000000000000000000000000000000000000000000000000"
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "CODECOPY",
+            "source": 0
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "PUSH",
+            "source": 0,
+            "value": "0"
+          },
+          {
+            "begin": 1250,
+            "end": 7920,
+            "name": "RETURN",
+            "source": 0
+          }
+        ],
+        ".data": {
+          "0": {
+            ".auxdata": "a264697066735822122021658f7485c7f73d8f29511e684b284f7b49ac44120efd15b54283a8d8e6c7b664736f6c63430007020033",
+            ".code": [
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "80"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "CALLVALUE",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "tag",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100000000000000000000000000000000000000000000000000000000"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "C0165EA5"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "12"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "C0165EA5"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "7"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "C58A34CC"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "8"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "DE4F6347"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "9"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "EFAABD59"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "10"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "F4DE6DA6"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "11"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "tag",
+                "source": 0,
+                "value": "12"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "5DF81330"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "70C56EDC"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "9AA360EC"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "5"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "BD041C4D"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "6"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "tag",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1250,
+                "end": 7920,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "tag",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "13"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "14"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "tag",
+                "source": 0,
+                "value": "14"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "15"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "tag",
+                "source": 0,
+                "value": "13"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP5",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "tag",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "16"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "60"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "17"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "tag",
+                "source": 0,
+                "value": "17"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "18"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "tag",
+                "source": 0,
+                "value": "16"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "tag",
+                "source": 0,
+                "value": "5"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "19"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "tag",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "21"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "tag",
+                "source": 0,
+                "value": "19"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "tag",
+                "source": 0,
+                "value": "6"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "22"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "23"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "tag",
+                "source": 0,
+                "value": "23"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "24"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "tag",
+                "source": 0,
+                "value": "22"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "STOP",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "tag",
+                "source": 0,
+                "value": "7"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "25"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "26"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "tag",
+                "source": 0,
+                "value": "25"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "tag",
+                "source": 0,
+                "value": "8"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "27"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "28"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "tag",
+                "source": 0,
+                "value": "28"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "29"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "tag",
+                "source": 0,
+                "value": "27"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "STOP",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "tag",
+                "source": 0,
+                "value": "9"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "30"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "31"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "tag",
+                "source": 0,
+                "value": "30"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "tag",
+                "source": 0,
+                "value": "10"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "32"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "33"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "tag",
+                "source": 0,
+                "value": "32"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "tag",
+                "source": 0,
+                "value": "11"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "34"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "CALLDATASIZE",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "35"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "tag",
+                "source": 0,
+                "value": "35"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "CALLDATALOAD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "36"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "tag",
+                "source": 0,
+                "value": "34"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "RETURN",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "tag",
+                "source": 0,
+                "value": "15"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "37"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "tag",
+                "source": 0,
+                "value": "37"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 1675,
+                "end": 1704,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "tag",
+                "source": 0,
+                "value": "18"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5542,
+                "end": 5546,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5562,
+                "end": 5586,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5594,
+                "end": 5612,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 5605,
+                "end": 5610,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 5594,
+                "end": 5603,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "21"
+              },
+              {
+                "begin": 5594,
+                "end": 5612,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 5594,
+                "end": 5612,
+                "name": "tag",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 5594,
+                "end": 5612,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5562,
+                "end": 5612,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5562,
+                "end": 5612,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5622,
+                "end": 5647,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5654,
+                "end": 5673,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "41"
+              },
+              {
+                "begin": 5665,
+                "end": 5671,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 5654,
+                "end": 5663,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "21"
+              },
+              {
+                "begin": 5654,
+                "end": 5673,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 5654,
+                "end": 5673,
+                "name": "tag",
+                "source": 0,
+                "value": "41"
+              },
+              {
+                "begin": 5654,
+                "end": 5673,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5622,
+                "end": 5673,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5622,
+                "end": 5673,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5691,
+                "end": 5707,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5684,
+                "end": 5734,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "42"
+              },
+              {
+                "begin": 5684,
+                "end": 5734,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5729,
+                "end": 5734,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5722,
+                "end": 5734,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5722,
+                "end": 5734,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5722,
+                "end": 5734,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5722,
+                "end": 5734,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5722,
+                "end": 5734,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "39"
+              },
+              {
+                "begin": 5722,
+                "end": 5734,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 5684,
+                "end": 5734,
+                "name": "tag",
+                "source": 0,
+                "value": "42"
+              },
+              {
+                "begin": 5684,
+                "end": 5734,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5813,
+                "end": 5830,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "43"
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5834,
+                "end": 5843,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "tag",
+                "source": 0,
+                "value": "43"
+              },
+              {
+                "begin": 5813,
+                "end": 5843,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5808,
+                "end": 5870,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5808,
+                "end": 5870,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "44"
+              },
+              {
+                "begin": 5808,
+                "end": 5870,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5865,
+                "end": 5870,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5858,
+                "end": 5870,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5858,
+                "end": 5870,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5858,
+                "end": 5870,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5858,
+                "end": 5870,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5858,
+                "end": 5870,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "39"
+              },
+              {
+                "begin": 5858,
+                "end": 5870,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 5808,
+                "end": 5870,
+                "name": "tag",
+                "source": 0,
+                "value": "44"
+              },
+              {
+                "begin": 5808,
+                "end": 5870,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5948,
+                "end": 5965,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5947,
+                "end": 5965,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "45"
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5970,
+                "end": 5979,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 5969,
+                "end": 5979,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "tag",
+                "source": 0,
+                "value": "45"
+              },
+              {
+                "begin": 5947,
+                "end": 5979,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5942,
+                "end": 6006,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5942,
+                "end": 6006,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "46"
+              },
+              {
+                "begin": 5942,
+                "end": 6006,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6001,
+                "end": 6006,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5994,
+                "end": 6006,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5994,
+                "end": 6006,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5994,
+                "end": 6006,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5994,
+                "end": 6006,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5994,
+                "end": 6006,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "39"
+              },
+              {
+                "begin": 5994,
+                "end": 6006,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 5942,
+                "end": 6006,
+                "name": "tag",
+                "source": 0,
+                "value": "46"
+              },
+              {
+                "begin": 5942,
+                "end": 6006,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6082,
+                "end": 6097,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6132,
+                "end": 6143,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 6132,
+                "end": 6143,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6114,
+                "end": 6129,
+                "name": "TIMESTAMP",
+                "source": 0
+              },
+              {
+                "begin": 6114,
+                "end": 6143,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 6082,
+                "end": 6143,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6082,
+                "end": 6143,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6153,
+                "end": 6162,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6185,
+                "end": 6190,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6185,
+                "end": 6197,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6185,
+                "end": 6197,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6185,
+                "end": 6197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6185,
+                "end": 6197,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6153,
+                "end": 6197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6153,
+                "end": 6197,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "tag",
+                "source": 0,
+                "value": "47"
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6221,
+                "end": 6222,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 6215,
+                "end": 6218,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6215,
+                "end": 6222,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "48"
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6277,
+                "end": 6282,
+                "name": "DUP8",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6282,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6255,
+                "end": 6282,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6260,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6261,
+                "end": 6262,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "49"
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "tag",
+                "source": 0,
+                "value": "49"
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6263,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6255,
+                "end": 6269,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6282,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6255,
+                "end": 6282,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6255,
+                "end": 6282,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "51"
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6326,
+                "end": 6332,
+                "name": "DUP7",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6332,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6304,
+                "end": 6332,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6309,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6310,
+                "end": 6311,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "52"
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "tag",
+                "source": 0,
+                "value": "52"
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6312,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6304,
+                "end": 6319,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6332,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 6304,
+                "end": 6332,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6304,
+                "end": 6332,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "tag",
+                "source": 0,
+                "value": "51"
+              },
+              {
+                "begin": 6254,
+                "end": 6333,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "54"
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6376,
+                "end": 6385,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6385,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6385,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6359,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6360,
+                "end": 6361,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "55"
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "tag",
+                "source": 0,
+                "value": "55"
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6362,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 6354,
+                "end": 6372,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6385,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6385,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6354,
+                "end": 6385,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "tag",
+                "source": 0,
+                "value": "54"
+              },
+              {
+                "begin": 6254,
+                "end": 6386,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "57"
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6428,
+                "end": 6435,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6412,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6413,
+                "end": 6414,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "58"
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "tag",
+                "source": 0,
+                "value": "58"
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6415,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6425,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 6407,
+                "end": 6425,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6425,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6407,
+                "end": 6435,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "tag",
+                "source": 0,
+                "value": "57"
+              },
+              {
+                "begin": 6254,
+                "end": 6436,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6247,
+                "end": 6479,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 6247,
+                "end": 6479,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "60"
+              },
+              {
+                "begin": 6247,
+                "end": 6479,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6474,
+                "end": 6479,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "SWAP5",
+                "source": 0
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "39"
+              },
+              {
+                "begin": 6467,
+                "end": 6479,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 6247,
+                "end": 6479,
+                "name": "tag",
+                "source": 0,
+                "value": "60"
+              },
+              {
+                "begin": 6247,
+                "end": 6479,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "47"
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "tag",
+                "source": 0,
+                "value": "48"
+              },
+              {
+                "begin": 6207,
+                "end": 6490,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6506,
+                "end": 6510,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 6499,
+                "end": 6510,
+                "name": "SWAP5",
+                "source": 0
+              },
+              {
+                "begin": 6499,
+                "end": 6510,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6499,
+                "end": 6510,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6499,
+                "end": 6510,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6499,
+                "end": 6510,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6499,
+                "end": 6510,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "tag",
+                "source": 0,
+                "value": "39"
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP4",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5455,
+                "end": 6517,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "tag",
+                "source": 0,
+                "value": "21"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2672,
+                "end": 2676,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2692,
+                "end": 2701,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2716,
+                "end": 2723,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2716,
+                "end": 2730,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2716,
+                "end": 2730,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2716,
+                "end": 2730,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2716,
+                "end": 2730,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2692,
+                "end": 2730,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2692,
+                "end": 2730,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "tag",
+                "source": 0,
+                "value": "62"
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2754,
+                "end": 2755,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 2748,
+                "end": 2751,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2748,
+                "end": 2755,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "63"
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2793,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2794,
+                "end": 2795,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "64"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "tag",
+                "source": 0,
+                "value": "64"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 2786,
+                "end": 2796,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 2775,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 2775,
+                "end": 2796,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 2775,
+                "end": 2782,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 2775,
+                "end": 2796,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 2775,
+                "end": 2796,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 2775,
+                "end": 2796,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 2770,
+                "end": 2826,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 2770,
+                "end": 2826,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "66"
+              },
+              {
+                "begin": 2770,
+                "end": 2826,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2822,
+                "end": 2826,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 2815,
+                "end": 2826,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2815,
+                "end": 2826,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2815,
+                "end": 2826,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2815,
+                "end": 2826,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "61"
+              },
+              {
+                "begin": 2815,
+                "end": 2826,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 2770,
+                "end": 2826,
+                "name": "tag",
+                "source": 0,
+                "value": "66"
+              },
+              {
+                "begin": 2770,
+                "end": 2826,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "62"
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "tag",
+                "source": 0,
+                "value": "63"
+              },
+              {
+                "begin": 2740,
+                "end": 2826,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2843,
+                "end": 2848,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2836,
+                "end": 2848,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2836,
+                "end": 2848,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2836,
+                "end": 2848,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "tag",
+                "source": 0,
+                "value": "61"
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2610,
+                "end": 2855,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "tag",
+                "source": 0,
+                "value": "24"
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6867,
+                "end": 6905,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "68"
+              },
+              {
+                "begin": 6875,
+                "end": 6885,
+                "name": "CALLER",
+                "source": 0
+              },
+              {
+                "begin": 6887,
+                "end": 6893,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 6895,
+                "end": 6904,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 6867,
+                "end": 6874,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "18"
+              },
+              {
+                "begin": 6867,
+                "end": 6905,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 6867,
+                "end": 6905,
+                "name": "tag",
+                "source": 0,
+                "value": "68"
+              },
+              {
+                "begin": 6867,
+                "end": 6905,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6860,
+                "end": 6978,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "69"
+              },
+              {
+                "begin": 6860,
+                "end": 6978,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "8C379A000000000000000000000000000000000000000000000000000000000"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "31"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH data",
+                "source": 0,
+                "value": "F0726338A759B4DF8C81AB99ABC67BF7B4F8FC2F3A9442D2AB50CFBB28D3CFBB"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "31"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "CODECOPY",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 6919,
+                "end": 6978,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 6860,
+                "end": 6978,
+                "name": "tag",
+                "source": 0,
+                "value": "69"
+              },
+              {
+                "begin": 6860,
+                "end": 6978,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7061,
+                "end": 7076,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7115,
+                "end": 7126,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 7115,
+                "end": 7126,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7097,
+                "end": 7112,
+                "name": "TIMESTAMP",
+                "source": 0
+              },
+              {
+                "begin": 7097,
+                "end": 7126,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 7061,
+                "end": 7126,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7061,
+                "end": 7126,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7136,
+                "end": 7145,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7172,
+                "end": 7177,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7172,
+                "end": 7184,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7172,
+                "end": 7184,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7172,
+                "end": 7184,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7172,
+                "end": 7184,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7136,
+                "end": 7184,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7136,
+                "end": 7184,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "tag",
+                "source": 0,
+                "value": "70"
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7208,
+                "end": 7209,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 7202,
+                "end": 7205,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7202,
+                "end": 7209,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "71"
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 7250,
+                "end": 7257,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7234,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7235,
+                "end": 7236,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "72"
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "tag",
+                "source": 0,
+                "value": "72"
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7237,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7247,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 7229,
+                "end": 7247,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7247,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7229,
+                "end": 7257,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 7224,
+                "end": 7293,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7224,
+                "end": 7293,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "74"
+              },
+              {
+                "begin": 7224,
+                "end": 7293,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 7276,
+                "end": 7293,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "75"
+              },
+              {
+                "begin": 7290,
+                "end": 7291,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7276,
+                "end": 7288,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "76"
+              },
+              {
+                "begin": 7276,
+                "end": 7293,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 7276,
+                "end": 7293,
+                "name": "tag",
+                "source": 0,
+                "value": "75"
+              },
+              {
+                "begin": 7276,
+                "end": 7293,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7224,
+                "end": 7293,
+                "name": "tag",
+                "source": 0,
+                "value": "74"
+              },
+              {
+                "begin": 7224,
+                "end": 7293,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "70"
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "tag",
+                "source": 0,
+                "value": "71"
+              },
+              {
+                "begin": 7194,
+                "end": 7293,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7359,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "80"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7400,
+                "end": 7410,
+                "name": "CALLER",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7428,
+                "end": 7434,
+                "name": "DUP7",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7452,
+                "end": 7467,
+                "name": "TIMESTAMP",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7485,
+                "end": 7494,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7378,
+                "end": 7508,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "60"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7354,
+                "end": 7518,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "14B0F3AFD5FDC1F8D3ADDF2DBF157D1362930A9CF8393FCADD50B05EC3E56FD8"
+              },
+              {
+                "begin": 7592,
+                "end": 7602,
+                "name": "CALLER",
+                "source": 0
+              },
+              {
+                "begin": 7605,
+                "end": 7611,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 7613,
+                "end": 7622,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "SWAP4",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7574,
+                "end": 7624,
+                "name": "LOG1",
+                "source": 0
+              },
+              {
+                "begin": 7710,
+                "end": 7745,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "78"
+              },
+              {
+                "begin": 7726,
+                "end": 7732,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 7734,
+                "end": 7743,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 7710,
+                "end": 7724,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "79"
+              },
+              {
+                "begin": 7710,
+                "end": 7745,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 7710,
+                "end": 7745,
+                "name": "tag",
+                "source": 0,
+                "value": "78"
+              },
+              {
+                "begin": 7710,
+                "end": 7745,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 7869,
+                "end": 7870,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 7851,
+                "end": 7858,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7851,
+                "end": 7865,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 7851,
+                "end": 7865,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 7851,
+                "end": 7865,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 7851,
+                "end": 7865,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 7851,
+                "end": 7870,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 7846,
+                "end": 7911,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 7846,
+                "end": 7911,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "80"
+              },
+              {
+                "begin": 7846,
+                "end": 7911,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 7899,
+                "end": 7909,
+                "name": "CALLER",
+                "source": 0
+              },
+              {
+                "begin": 7885,
+                "end": 7911,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 7885,
+                "end": 7911,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 7885,
+                "end": 7911,
+                "name": "SELFDESTRUCT",
+                "source": 0
+              },
+              {
+                "begin": 7846,
+                "end": 7911,
+                "name": "tag",
+                "source": 0,
+                "value": "80"
+              },
+              {
+                "begin": 7846,
+                "end": 7911,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 6791,
+                "end": 7918,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "tag",
+                "source": 0,
+                "value": "26"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1710,
+                "end": 1754,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "tag",
+                "source": 0,
+                "value": "29"
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2166,
+                "end": 2187,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "82"
+              },
+              {
+                "begin": 2176,
+                "end": 2186,
+                "name": "CALLER",
+                "source": 0
+              },
+              {
+                "begin": 2166,
+                "end": 2175,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "21"
+              },
+              {
+                "begin": 2166,
+                "end": 2187,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 2166,
+                "end": 2187,
+                "name": "tag",
+                "source": 0,
+                "value": "82"
+              },
+              {
+                "begin": 2166,
+                "end": 2187,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2159,
+                "end": 2255,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "83"
+              },
+              {
+                "begin": 2159,
+                "end": 2255,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "8C379A000000000000000000000000000000000000000000000000000000000"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2B"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH data",
+                "source": 0,
+                "value": "4E931E13AD45558758047E08F56DBF652A745A7305490BDF535362653A5B6BE0"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2B"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "CODECOPY",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2202,
+                "end": 2255,
+                "name": "REVERT",
+                "source": 0
+              },
+              {
+                "begin": 2159,
+                "end": 2255,
+                "name": "tag",
+                "source": 0,
+                "value": "83"
+              },
+              {
+                "begin": 2159,
+                "end": 2255,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2281,
+                "end": 2285,
+                "name": "PUSH",
+                "source": 0,
+                "value": "E10"
+              },
+              {
+                "begin": 2270,
+                "end": 2277,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2270,
+                "end": 2285,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 2265,
+                "end": 2331,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "84"
+              },
+              {
+                "begin": 2265,
+                "end": 2331,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 2324,
+                "end": 2331,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2300,
+                "end": 2311,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 2300,
+                "end": 2331,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 2300,
+                "end": 2331,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2300,
+                "end": 2331,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2300,
+                "end": 2331,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2265,
+                "end": 2331,
+                "name": "tag",
+                "source": 0,
+                "value": "84"
+              },
+              {
+                "begin": 2265,
+                "end": 2331,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2099,
+                "end": 2338,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "tag",
+                "source": 0,
+                "value": "31"
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2494,
+                "end": 2498,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2521,
+                "end": 2526,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 2521,
+                "end": 2533,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2521,
+                "end": 2533,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2521,
+                "end": 2533,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2521,
+                "end": 2533,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2514,
+                "end": 2533,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2514,
+                "end": 2533,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2447,
+                "end": 2540,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "tag",
+                "source": 0,
+                "value": "33"
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 2393,
+                "end": 2397,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 2420,
+                "end": 2427,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2420,
+                "end": 2434,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 2420,
+                "end": 2434,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 2420,
+                "end": 2434,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2420,
+                "end": 2434,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2413,
+                "end": 2434,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2413,
+                "end": 2434,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 2344,
+                "end": 2441,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "tag",
+                "source": 0,
+                "value": "36"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "87"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "tag",
+                "source": 0,
+                "value": "87"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 1638,
+                "end": 1669,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 2956,
+                "end": 3204,
+                "name": "tag",
+                "source": 0,
+                "value": "76"
+              },
+              {
+                "begin": 2956,
+                "end": 3204,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3015,
+                "end": 3026,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3039,
+                "end": 3044,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3039,
+                "end": 3051,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3039,
+                "end": 3051,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3039,
+                "end": 3051,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3039,
+                "end": 3051,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3015,
+                "end": 3051,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3015,
+                "end": 3051,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "tag",
+                "source": 0,
+                "value": "90"
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3077,
+                "end": 3080,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3069,
+                "end": 3074,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3069,
+                "end": 3074,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3069,
+                "end": 3074,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3069,
+                "end": 3074,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 3069,
+                "end": 3074,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3069,
+                "end": 3074,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3069,
+                "end": 3080,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "91"
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3115,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3116,
+                "end": 3119,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "92"
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "tag",
+                "source": 0,
+                "value": "92"
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3110,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3100,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3105,
+                "end": 3106,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3101,
+                "end": 3104,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 3101,
+                "end": 3106,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "94"
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "tag",
+                "source": 0,
+                "value": "94"
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3107,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3095,
+                "end": 3120,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "90"
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "tag",
+                "source": 0,
+                "value": "91"
+              },
+              {
+                "begin": 3061,
+                "end": 3120,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3191,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "96"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "tag",
+                "source": 0,
+                "value": "96"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3186,
+                "end": 3197,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 2956,
+                "end": 3204,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2956,
+                "end": 3204,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 2956,
+                "end": 3204,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "tag",
+                "source": 0,
+                "value": "79"
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4256,
+                "end": 4272,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4295,
+                "end": 4311,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4344,
+                "end": 4345,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4340,
+                "end": 4341,
+                "name": "PUSH",
+                "source": 0,
+                "value": "2"
+              },
+              {
+                "begin": 4323,
+                "end": 4330,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4323,
+                "end": 4337,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4337,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4337,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4337,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "99"
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "tag",
+                "source": 0,
+                "value": "99"
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4341,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 4323,
+                "end": 4345,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4295,
+                "end": 4345,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4295,
+                "end": 4345,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4355,
+                "end": 4364,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4383,
+                "end": 4388,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4383,
+                "end": 4395,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4383,
+                "end": 4395,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4383,
+                "end": 4395,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4383,
+                "end": 4395,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4355,
+                "end": 4395,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4355,
+                "end": 4395,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "tag",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4419,
+                "end": 4420,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 4413,
+                "end": 4416,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4413,
+                "end": 4420,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "101"
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4466,
+                "end": 4472,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4472,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 4444,
+                "end": 4472,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4449,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4450,
+                "end": 4451,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "102"
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "tag",
+                "source": 0,
+                "value": "102"
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4452,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 4444,
+                "end": 4459,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4472,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 4444,
+                "end": 4472,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4444,
+                "end": 4472,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "104"
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4518,
+                "end": 4527,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4527,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4527,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4501,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4502,
+                "end": 4503,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "105"
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "tag",
+                "source": 0,
+                "value": "105"
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4504,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 4496,
+                "end": 4514,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4527,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4527,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4496,
+                "end": 4527,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "tag",
+                "source": 0,
+                "value": "104"
+              },
+              {
+                "begin": 4439,
+                "end": 4529,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4435,
+                "end": 4570,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4435,
+                "end": 4570,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "107"
+              },
+              {
+                "begin": 4435,
+                "end": 4570,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "SWAP4",
+                "source": 0
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4560,
+                "end": 4570,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4435,
+                "end": 4570,
+                "name": "tag",
+                "source": 0,
+                "value": "107"
+              },
+              {
+                "begin": 4435,
+                "end": 4570,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "tag",
+                "source": 0,
+                "value": "101"
+              },
+              {
+                "begin": 4405,
+                "end": 4570,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4678,
+                "end": 4686,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4667,
+                "end": 4675,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 4667,
+                "end": 4686,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 4662,
+                "end": 4708,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4662,
+                "end": 4708,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "108"
+              },
+              {
+                "begin": 4662,
+                "end": 4708,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4701,
+                "end": 4708,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4701,
+                "end": 4708,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4701,
+                "end": 4708,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4701,
+                "end": 4708,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "98"
+              },
+              {
+                "begin": 4701,
+                "end": 4708,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 4662,
+                "end": 4708,
+                "name": "tag",
+                "source": 0,
+                "value": "108"
+              },
+              {
+                "begin": 4662,
+                "end": 4708,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4766,
+                "end": 4775,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "109"
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4838,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4845,
+                "end": 4851,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4831,
+                "end": 4853,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "111"
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "tag",
+                "source": 0,
+                "value": "109"
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4926,
+                "end": 4958,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "112"
+              },
+              {
+                "begin": 4950,
+                "end": 4956,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 4926,
+                "end": 4948,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "113"
+              },
+              {
+                "begin": 4926,
+                "end": 4958,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 4926,
+                "end": 4958,
+                "name": "tag",
+                "source": 0,
+                "value": "112"
+              },
+              {
+                "begin": 4926,
+                "end": 4958,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "tag",
+                "source": 0,
+                "value": "111"
+              },
+              {
+                "begin": 4761,
+                "end": 4958,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "PUSH",
+                "source": 0,
+                "value": "74E4000982957ADCDC88CBFAAE69F0A87D5E3A60631F7B82ACFFE83C0D9307B8"
+              },
+              {
+                "begin": 5015,
+                "end": 5021,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 5023,
+                "end": 5032,
+                "name": "DUP6",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "PUSH",
+                "source": 0,
+                "value": "40"
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "MLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "SWAP2",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5002,
+                "end": 5034,
+                "name": "LOG1",
+                "source": 0
+              },
+              {
+                "begin": 5127,
+                "end": 5132,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 5127,
+                "end": 5139,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5127,
+                "end": 5139,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5127,
+                "end": 5139,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5127,
+                "end": 5139,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5103,
+                "end": 5139,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5103,
+                "end": 5139,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "tag",
+                "source": 0,
+                "value": "114"
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5163,
+                "end": 5164,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 5157,
+                "end": 5160,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5157,
+                "end": 5164,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "115"
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5210,
+                "end": 5216,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5216,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 5188,
+                "end": 5216,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5193,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 5194,
+                "end": 5195,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "116"
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "tag",
+                "source": 0,
+                "value": "116"
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5196,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 5188,
+                "end": 5203,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5216,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 5188,
+                "end": 5216,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5188,
+                "end": 5216,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "118"
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 5262,
+                "end": 5271,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5271,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5271,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5245,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 5246,
+                "end": 5247,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "119"
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "tag",
+                "source": 0,
+                "value": "119"
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5248,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "PUSH",
+                "source": 0,
+                "value": "3"
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FF"
+              },
+              {
+                "begin": 5240,
+                "end": 5258,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5271,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5271,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5240,
+                "end": 5271,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "tag",
+                "source": 0,
+                "value": "118"
+              },
+              {
+                "begin": 5183,
+                "end": 5273,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5179,
+                "end": 5317,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 5179,
+                "end": 5317,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "121"
+              },
+              {
+                "begin": 5179,
+                "end": 5317,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 5300,
+                "end": 5317,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "122"
+              },
+              {
+                "begin": 5314,
+                "end": 5315,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 5300,
+                "end": 5312,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "76"
+              },
+              {
+                "begin": 5300,
+                "end": 5317,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 5300,
+                "end": 5317,
+                "name": "tag",
+                "source": 0,
+                "value": "122"
+              },
+              {
+                "begin": 5300,
+                "end": 5317,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5179,
+                "end": 5317,
+                "name": "tag",
+                "source": 0,
+                "value": "121"
+              },
+              {
+                "begin": 5179,
+                "end": 5317,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "114"
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "tag",
+                "source": 0,
+                "value": "115"
+              },
+              {
+                "begin": 5149,
+                "end": 5317,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "tag",
+                "source": 0,
+                "value": "98"
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4176,
+                "end": 5324,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "tag",
+                "source": 0,
+                "value": "113"
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3347,
+                "end": 3360,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3371,
+                "end": 3376,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3371,
+                "end": 3383,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3371,
+                "end": 3383,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3371,
+                "end": 3383,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3371,
+                "end": 3383,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3347,
+                "end": 3383,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3347,
+                "end": 3383,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "tag",
+                "source": 0,
+                "value": "124"
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3407,
+                "end": 3408,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 3401,
+                "end": 3404,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3401,
+                "end": 3408,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "125"
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3446,
+                "end": 3454,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3454,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3428,
+                "end": 3454,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3433,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3434,
+                "end": 3435,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "126"
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "tag",
+                "source": 0,
+                "value": "126"
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "PUSH",
+                "source": 0,
+                "value": "4"
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3436,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3428,
+                "end": 3442,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3454,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3428,
+                "end": 3454,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3428,
+                "end": 3454,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 3423,
+                "end": 3490,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3423,
+                "end": 3490,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "128"
+              },
+              {
+                "begin": 3423,
+                "end": 3490,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3473,
+                "end": 3490,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "129"
+              },
+              {
+                "begin": 3487,
+                "end": 3488,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3473,
+                "end": 3485,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "76"
+              },
+              {
+                "begin": 3473,
+                "end": 3490,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[in]"
+              },
+              {
+                "begin": 3473,
+                "end": 3490,
+                "name": "tag",
+                "source": 0,
+                "value": "129"
+              },
+              {
+                "begin": 3473,
+                "end": 3490,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3423,
+                "end": 3490,
+                "name": "tag",
+                "source": 0,
+                "value": "128"
+              },
+              {
+                "begin": 3423,
+                "end": 3490,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "124"
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "tag",
+                "source": 0,
+                "value": "125"
+              },
+              {
+                "begin": 3393,
+                "end": 3490,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3637,
+                "end": 3644,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3637,
+                "end": 3651,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3637,
+                "end": 3651,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3637,
+                "end": 3651,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3637,
+                "end": 3651,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3613,
+                "end": 3651,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3613,
+                "end": 3651,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "tag",
+                "source": 0,
+                "value": "130"
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3675,
+                "end": 3676,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 3669,
+                "end": 3672,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3669,
+                "end": 3676,
+                "name": "GT",
+                "source": 0
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "131"
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3720,
+                "end": 3728,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3728,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3706,
+                "end": 3728,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3713,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3714,
+                "end": 3715,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "132"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "tag",
+                "source": 0,
+                "value": "132"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3706,
+                "end": 3716,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3728,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3706,
+                "end": 3728,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3706,
+                "end": 3728,
+                "name": "EQ",
+                "source": 0
+              },
+              {
+                "begin": 3701,
+                "end": 4056,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3701,
+                "end": 4056,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "134"
+              },
+              {
+                "begin": 3701,
+                "end": 4056,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3761,
+                "end": 3772,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3777,
+                "end": 3778,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3761,
+                "end": 3778,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3761,
+                "end": 3778,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3796,
+                "end": 3807,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3812,
+                "end": 3819,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3812,
+                "end": 3826,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3812,
+                "end": 3826,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3812,
+                "end": 3826,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3812,
+                "end": 3826,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3796,
+                "end": 3826,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3796,
+                "end": 3826,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "tag",
+                "source": 0,
+                "value": "135"
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3860,
+                "end": 3863,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 3852,
+                "end": 3857,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3852,
+                "end": 3857,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3852,
+                "end": 3857,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3852,
+                "end": 3857,
+                "name": "SWAP3",
+                "source": 0
+              },
+              {
+                "begin": 3852,
+                "end": 3857,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3852,
+                "end": 3857,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3852,
+                "end": 3863,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "ISZERO",
+                "source": 0
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "136"
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3910,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3911,
+                "end": 3914,
+                "name": "DUP3",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "137"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "tag",
+                "source": 0,
+                "value": "137"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "DIV",
+                "source": 0
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3903,
+                "end": 3915,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3893,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3898,
+                "end": 3899,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 3894,
+                "end": 3897,
+                "name": "DUP5",
+                "source": 0
+              },
+              {
+                "begin": 3894,
+                "end": 3899,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "LT",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "139"
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "tag",
+                "source": 0,
+                "value": "139"
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3900,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "DUP4",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "OR",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 3886,
+                "end": 3915,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "135"
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "tag",
+                "source": 0,
+                "value": "136"
+              },
+              {
+                "begin": 3844,
+                "end": 3915,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4011,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "DUP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "141"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "JUMPI",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "INVALID",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "tag",
+                "source": 0,
+                "value": "141"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "1"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SUB",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "MSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "20"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "KECCAK256",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "ADD",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "0"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "100"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "EXP",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "DUP2",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SLOAD",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "PUSH",
+                "source": 0,
+                "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "MUL",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "NOT",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "AND",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SWAP1",
+                "source": 0
+              },
+              {
+                "begin": 4004,
+                "end": 4017,
+                "name": "SSTORE",
+                "source": 0
+              },
+              {
+                "begin": 4035,
+                "end": 4042,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4035,
+                "end": 4042,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4035,
+                "end": 4042,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 4035,
+                "end": 4042,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "123"
+              },
+              {
+                "begin": 4035,
+                "end": 4042,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 3701,
+                "end": 4056,
+                "name": "tag",
+                "source": 0,
+                "value": "134"
+              },
+              {
+                "begin": 3701,
+                "end": 4056,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "PUSH [tag]",
+                "source": 0,
+                "value": "130"
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "JUMP",
+                "source": 0
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "tag",
+                "source": 0,
+                "value": "131"
+              },
+              {
+                "begin": 3661,
+                "end": 4066,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "tag",
+                "source": 0,
+                "value": "123"
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "JUMPDEST",
+                "source": 0
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "POP",
+                "source": 0
+              },
+              {
+                "begin": 3210,
+                "end": 4072,
+                "name": "JUMP",
+                "source": 0,
+                "value": "[out]"
+              }
+            ],
+            ".data": {
+              "4E931E13AD45558758047E08F56DBF652A745A7305490BDF535362653A5B6BE0": "4f6e6c7920636f756e63696c206d656d62657273206d61792075736520746869732066756e6374696f6e2e",
+              "F0726338A759B4DF8C81AB99ABC67BF7B4F8FC2F3A9442D2AB50CFBB28D3CFBB": "54686174207365656d7320726564756e64616e74206f72206973206f7468657277697365206e6f7420616c6c6f7765642e"
+            }
+          }
+        }
+      },
+      "bin": "608060405262093a8060025534801561001757600080fd5b506040516111e83803806111e88339818101604052602081101561003a57600080fd5b8101908080519060200190929190505050610e10811061005c57806002819055505b6000339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611119806100cf6000396000f3fe608060405234801561001057600080fd5b50600436106100b0576000357c010000000000000000000000000000000000000000000000000000000090048063c0165ea511610083578063c0165ea51461026a578063c58a34cc14610288578063de4f6347146102b6578063efaabd59146102d4578063f4de6da6146102f2576100b0565b80635df81330146100b557806370c56edc1461013a5780639aa360ec146101c0578063bd041c4d1461021a575b600080fd5b6100e1600480360360208110156100cb57600080fd5b810190808035906020019092919050505061034a565b604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001821515815260200194505050505060405180910390f35b6101a86004803603606081101561015057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506103d4565b60405180821515815260200191505060405180910390f35b610202600480360360208110156101d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c5565b60405180821515815260200191505060405180910390f35b6102686004803603604081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610666565b005b6102726108fe565b6040518082815260200191505060405180910390f35b6102b46004803603602081101561029e57600080fd5b8101908080359060200190929190505050610904565b005b6102be610976565b6040518082815260200191505060405180910390f35b6102dc610983565b6040518082815260200191505060405180910390f35b61031e6004803603602081101561030857600080fd5b810190808035906020019092919050505061098f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6001818154811061035757fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16905084565b6000806103e0856105c5565b905060006103ed856105c5565b9050816103ff576000925050506105be565b8080156104095750835b15610419576000925050506105be565b80158015610425575083155b15610435576000925050506105be565b600060025442039050600060018054905090505b6000818060019003925011156105b5578773ffffffffffffffffffffffffffffffffffffffff166001828154811061047d57fe5b906000526020600020906004020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561053b57508673ffffffffffffffffffffffffffffffffffffffff16600182815481106104f157fe5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b801561057557508515156001828154811061055257fe5b906000526020600020906004020160030160009054906101000a900460ff161515145b801561059e5750816001828154811061058a57fe5b906000526020600020906004020160020154115b156105b05760009450505050506105be565b610449565b60019450505050505b9392505050565b60008060008054905090505b60008180600190039250111561065b57600081815481106105ee57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610656576001915050610661565b6105d1565b60009150505b919050565b6106713383836103d4565b6106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806110b36031913960400191505060405180910390fd5b600060025442039050600060018054905090505b60008180600190039250111561071f5781600182815481106106f857fe5b906000526020600020906004020160020154101561071a57610719816109cb565b5b6106da565b600160405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff168152602001428152602001851515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050507f14b0f3afd5fdc1f8d3addf2dbf157d1362930a9cf8393fcadd50b05ec3e56fd8338585604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018215158152602001935050505060405180910390a16108d28484610bbb565b6000808054905014156108f8573373ffffffffffffffffffffffffffffffffffffffff16ff5b50505050565b60025481565b61090d336105c5565b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611088602b913960400191505060405180910390fd5b610e10811061097357806002819055505b50565b6000600180549050905090565b60008080549050905090565b6000818154811061099c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060018054905090505b80826001019250821015610b2957600182815481106109f157fe5b9060005260206000209060040201600180840381548110610a0e57fe5b90600052602060002090600402016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600282015481600201556003820160009054906101000a900460ff168160030160006101000a81548160ff0219169083151502179055509050506109d6565b6001805480610b3457fe5b6001900381819060005260206000209060040201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff0219169055505090555050565b6000806001600260008054905081610bcf57fe5b04019050600060018054905090505b600081806001900392501115610ca8578473ffffffffffffffffffffffffffffffffffffffff1660018281548110610c1257fe5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610c95575083151560018281548110610c7257fe5b906000526020600020906004020160030160009054906101000a900460ff161515145b15610ca35782806001019350505b610bde565b81831015610cb857505050610e5f565b8315610d26576000859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d30565b610d2f85610e63565b5b7f74e4000982957adcdc88cbfaae69f0a87d5e3a60631f7b82acffe83c0d9307b88585604051808373ffffffffffffffffffffffffffffffffffffffff16815260200182151581526020019250505060405180910390a160018054905090505b600081806001900392501115610e5b578473ffffffffffffffffffffffffffffffffffffffff1660018281548110610dc457fe5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610e47575083151560018281548110610e2457fe5b906000526020600020906004020160030160009054906101000a900460ff161515145b15610e5657610e55816109cb565b5b610d90565b5050505b5050565b600060018054905090505b600081806001900392501115610eff578173ffffffffffffffffffffffffffffffffffffffff1660018281548110610ea257fe5b906000526020600020906004020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610efa57610ef9816109cb565b5b610e6e565b60008054905090505b600081806001900392501115611082578173ffffffffffffffffffffffffffffffffffffffff1660008281548110610f3c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561107d5760008190506000808054905090505b808260010192508210156110355760008281548110610fad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006001840381548110610fe857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f92565b600080548061104057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055505050611084565b610f08565b505b5056fe4f6e6c7920636f756e63696c206d656d62657273206d61792075736520746869732066756e6374696f6e2e54686174207365656d7320726564756e64616e74206f72206973206f7468657277697365206e6f7420616c6c6f7765642ea264697066735822122021658f7485c7f73d8f29511e684b284f7b49ac44120efd15b54283a8d8e6c7b664736f6c63430007020033",
+      "bin-runtime": "608060405234801561001057600080fd5b50600436106100b0576000357c010000000000000000000000000000000000000000000000000000000090048063c0165ea511610083578063c0165ea51461026a578063c58a34cc14610288578063de4f6347146102b6578063efaabd59146102d4578063f4de6da6146102f2576100b0565b80635df81330146100b557806370c56edc1461013a5780639aa360ec146101c0578063bd041c4d1461021a575b600080fd5b6100e1600480360360208110156100cb57600080fd5b810190808035906020019092919050505061034a565b604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001821515815260200194505050505060405180910390f35b6101a86004803603606081101561015057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506103d4565b60405180821515815260200191505060405180910390f35b610202600480360360208110156101d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105c5565b60405180821515815260200191505060405180910390f35b6102686004803603604081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610666565b005b6102726108fe565b6040518082815260200191505060405180910390f35b6102b46004803603602081101561029e57600080fd5b8101908080359060200190929190505050610904565b005b6102be610976565b6040518082815260200191505060405180910390f35b6102dc610983565b6040518082815260200191505060405180910390f35b61031e6004803603602081101561030857600080fd5b810190808035906020019092919050505061098f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6001818154811061035757fe5b90600052602060002090600402016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16905084565b6000806103e0856105c5565b905060006103ed856105c5565b9050816103ff576000925050506105be565b8080156104095750835b15610419576000925050506105be565b80158015610425575083155b15610435576000925050506105be565b600060025442039050600060018054905090505b6000818060019003925011156105b5578773ffffffffffffffffffffffffffffffffffffffff166001828154811061047d57fe5b906000526020600020906004020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561053b57508673ffffffffffffffffffffffffffffffffffffffff16600182815481106104f157fe5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b801561057557508515156001828154811061055257fe5b906000526020600020906004020160030160009054906101000a900460ff161515145b801561059e5750816001828154811061058a57fe5b906000526020600020906004020160020154115b156105b05760009450505050506105be565b610449565b60019450505050505b9392505050565b60008060008054905090505b60008180600190039250111561065b57600081815481106105ee57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610656576001915050610661565b6105d1565b60009150505b919050565b6106713383836103d4565b6106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806110b36031913960400191505060405180910390fd5b600060025442039050600060018054905090505b60008180600190039250111561071f5781600182815481106106f857fe5b906000526020600020906004020160020154101561071a57610719816109cb565b5b6106da565b600160405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff168152602001428152602001851515815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050507f14b0f3afd5fdc1f8d3addf2dbf157d1362930a9cf8393fcadd50b05ec3e56fd8338585604051808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018215158152602001935050505060405180910390a16108d28484610bbb565b6000808054905014156108f8573373ffffffffffffffffffffffffffffffffffffffff16ff5b50505050565b60025481565b61090d336105c5565b610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611088602b913960400191505060405180910390fd5b610e10811061097357806002819055505b50565b6000600180549050905090565b60008080549050905090565b6000818154811061099c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060018054905090505b80826001019250821015610b2957600182815481106109f157fe5b9060005260206000209060040201600180840381548110610a0e57fe5b90600052602060002090600402016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600282015481600201556003820160009054906101000a900460ff168160030160006101000a81548160ff0219169083151502179055509050506109d6565b6001805480610b3457fe5b6001900381819060005260206000209060040201600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff0219169055505090555050565b6000806001600260008054905081610bcf57fe5b04019050600060018054905090505b600081806001900392501115610ca8578473ffffffffffffffffffffffffffffffffffffffff1660018281548110610c1257fe5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610c95575083151560018281548110610c7257fe5b906000526020600020906004020160030160009054906101000a900460ff161515145b15610ca35782806001019350505b610bde565b81831015610cb857505050610e5f565b8315610d26576000859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d30565b610d2f85610e63565b5b7f74e4000982957adcdc88cbfaae69f0a87d5e3a60631f7b82acffe83c0d9307b88585604051808373ffffffffffffffffffffffffffffffffffffffff16815260200182151581526020019250505060405180910390a160018054905090505b600081806001900392501115610e5b578473ffffffffffffffffffffffffffffffffffffffff1660018281548110610dc457fe5b906000526020600020906004020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610e47575083151560018281548110610e2457fe5b906000526020600020906004020160030160009054906101000a900460ff161515145b15610e5657610e55816109cb565b5b610d90565b5050505b5050565b600060018054905090505b600081806001900392501115610eff578173ffffffffffffffffffffffffffffffffffffffff1660018281548110610ea257fe5b906000526020600020906004020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610efa57610ef9816109cb565b5b610e6e565b60008054905090505b600081806001900392501115611082578173ffffffffffffffffffffffffffffffffffffffff1660008281548110610f3c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561107d5760008190506000808054905090505b808260010192508210156110355760008281548110610fad57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006001840381548110610fe857fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f92565b600080548061104057fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055505050611084565b610f08565b505b5056fe4f6e6c7920636f756e63696c206d656d62657273206d61792075736520746869732066756e6374696f6e2e54686174207365656d7320726564756e64616e74206f72206973206f7468657277697365206e6f7420616c6c6f7765642ea264697066735822122021658f7485c7f73d8f29511e684b284f7b49ac44120efd15b54283a8d8e6c7b664736f6c63430007020033",
+      "devdoc": "{\"kind\":\"dev\",\"methods\":{},\"version\":1}",
+      "generated-sources": [],
+      "generated-sources-runtime": [],
+      "hashes": {
+        "council(uint256)": "f4de6da6",
+        "councilLength()": "efaabd59",
+        "isCouncil(address)": "9aa360ec",
+        "mayVote(address,address,bool)": "70c56edc",
+        "setTimeout(uint256)": "c58a34cc",
+        "vote(address,bool)": "bd041c4d",
+        "votes(uint256)": "5df81330",
+        "votesLength()": "de4f6347",
+        "votetimeout()": "c0165ea5"
+      },
+      "metadata": "{\"compiler\":{\"version\":\"0.7.2+commit.51b20bc0\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"adminChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"voteCast\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"council\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subject\",\"type\":\"address\"}],\"name\":\"isCouncil\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"mayVote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timeout\",\"type\":\"uint256\"}],\"name\":\"setTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"name\":\"vote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"votes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"victim\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"voteStart\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"promotion\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votetimeout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Majority/Majority.sol\":\"Majority\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/Majority/Majority.sol\":{\"keccak256\":\"0xde64db79226831bf71dc368fae89de83d95731f8ea87ecced6f811e30ca534a3\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://69423a090330d2ad99bfd4d840b0ae12ce8b4501b566c0e8faf10fec531ac460\",\"dweb:/ipfs/QmagFPSfG7zRhfsVfEBFgVtw24HvMaj2VboHABwc5FyLta\"]}},\"version\":1}",
+      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH3 0x93A80 PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x11E8 CODESIZE SUB DUP1 PUSH2 0x11E8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xE10 DUP2 LT PUSH2 0x5C JUMPI DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 CALLER SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1119 DUP1 PUSH2 0xCF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xC0165EA5 GT PUSH2 0x83 JUMPI DUP1 PUSH4 0xC0165EA5 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0xC58A34CC EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xDE4F6347 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xEFAABD59 EQ PUSH2 0x2D4 JUMPI DUP1 PUSH4 0xF4DE6DA6 EQ PUSH2 0x2F2 JUMPI PUSH2 0xB0 JUMP JUMPDEST DUP1 PUSH4 0x5DF81330 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x70C56EDC EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x9AA360EC EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0xBD041C4D EQ PUSH2 0x21A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x34A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x202 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x268 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x666 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x29E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x904 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DC PUSH2 0x983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x308 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x357 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3E0 DUP6 PUSH2 0x5C5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3ED DUP6 PUSH2 0x5C5 JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x3FF JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x5BE JUMP JUMPDEST DUP1 DUP1 ISZERO PUSH2 0x409 JUMPI POP DUP4 JUMPDEST ISZERO PUSH2 0x419 JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x5BE JUMP JUMPDEST DUP1 ISZERO DUP1 ISZERO PUSH2 0x425 JUMPI POP DUP4 ISZERO JUMPDEST ISZERO PUSH2 0x435 JUMPI PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD TIMESTAMP SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0x5B5 JUMPI DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x47D JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x53B JUMPI POP DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 ISZERO PUSH2 0x575 JUMPI POP DUP6 ISZERO ISZERO PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x552 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ JUMPDEST DUP1 ISZERO PUSH2 0x59E JUMPI POP DUP2 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x58A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x2 ADD SLOAD GT JUMPDEST ISZERO PUSH2 0x5B0 JUMPI PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x5BE JUMP JUMPDEST PUSH2 0x449 JUMP JUMPDEST PUSH1 0x1 SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0x65B JUMPI PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x5EE JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x656 JUMPI PUSH1 0x1 SWAP2 POP POP PUSH2 0x661 JUMP JUMPDEST PUSH2 0x5D1 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x671 CALLER DUP4 DUP4 PUSH2 0x3D4 JUMP JUMPDEST PUSH2 0x6C6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x31 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x10B3 PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD TIMESTAMP SUB SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0x71F JUMPI DUP2 PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x6F8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x2 ADD SLOAD LT ISZERO PUSH2 0x71A JUMPI PUSH2 0x719 DUP2 PUSH2 0x9CB JUMP JUMPDEST JUMPDEST PUSH2 0x6DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP6 ISZERO ISZERO DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP PUSH32 0x14B0F3AFD5FDC1F8D3ADDF2DBF157D1362930A9CF8393FCADD50B05EC3E56FD8 CALLER DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x8D2 DUP5 DUP5 PUSH2 0xBBB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP EQ ISZERO PUSH2 0x8F8 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x90D CALLER PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0x962 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1088 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE10 DUP2 LT PUSH2 0x973 JUMPI DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x99C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST DUP1 DUP3 PUSH1 0x1 ADD SWAP3 POP DUP3 LT ISZERO PUSH2 0xB29 JUMPI PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x9F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x1 DUP1 DUP5 SUB DUP2 SLOAD DUP2 LT PUSH2 0xA0E JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x2 DUP3 ADD SLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 PUSH1 0x3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH2 0x9D6 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD DUP1 PUSH2 0xB34 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x3 DUP3 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH1 0xFF MUL NOT AND SWAP1 SSTORE POP POP SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 PUSH2 0xBCF JUMPI INVALID JUMPDEST DIV ADD SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0xCA8 JUMPI DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xC12 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0xC95 JUMPI POP DUP4 ISZERO ISZERO PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xC72 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ JUMPDEST ISZERO PUSH2 0xCA3 JUMPI DUP3 DUP1 PUSH1 0x1 ADD SWAP4 POP POP JUMPDEST PUSH2 0xBDE JUMP JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0xCB8 JUMPI POP POP POP PUSH2 0xE5F JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD26 JUMPI PUSH1 0x0 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xD30 JUMP JUMPDEST PUSH2 0xD2F DUP6 PUSH2 0xE63 JUMP JUMPDEST JUMPDEST PUSH32 0x74E4000982957ADCDC88CBFAAE69F0A87D5E3A60631F7B82ACFFE83C0D9307B8 DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0xE5B JUMPI DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xDC4 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0xE47 JUMPI POP DUP4 ISZERO ISZERO PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xE24 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ JUMPDEST ISZERO PUSH2 0xE56 JUMPI PUSH2 0xE55 DUP2 PUSH2 0x9CB JUMP JUMPDEST JUMPDEST PUSH2 0xD90 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0xEFF JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xEA2 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x4 MUL ADD PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xEFA JUMPI PUSH2 0xEF9 DUP2 PUSH2 0x9CB JUMP JUMPDEST JUMPDEST PUSH2 0xE6E JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x1 SWAP1 SUB SWAP3 POP GT ISZERO PUSH2 0x1082 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xF3C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x107D JUMPI PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP JUMPDEST DUP1 DUP3 PUSH1 0x1 ADD SWAP3 POP DUP3 LT ISZERO PUSH2 0x1035 JUMPI PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xFAD JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH1 0x1 DUP5 SUB DUP2 SLOAD DUP2 LT PUSH2 0xFE8 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF92 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP1 PUSH2 0x1040 JUMPI INVALID JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE SWAP1 SSTORE POP POP POP PUSH2 0x1084 JUMP JUMPDEST PUSH2 0xF08 JUMP JUMPDEST POP JUMPDEST POP JUMP INVALID 0x4F PUSH15 0x6C7920636F756E63696C206D656D62 PUSH6 0x7273206D6179 KECCAK256 PUSH22 0x736520746869732066756E6374696F6E2E5468617420 PUSH20 0x65656D7320726564756E64616E74206F72206973 KECCAK256 PUSH16 0x7468657277697365206E6F7420616C6C PUSH16 0x7765642EA26469706673582212202165 DUP16 PUSH21 0x85C7F73D8F29511E684B284F7B49AC44120EFD15B5 TIMESTAMP DUP4 0xA8 0xD8 0xE6 0xC7 0xB6 PUSH5 0x736F6C6343 STOP SMOD MUL STOP CALLER ",
+      "srcmap": "1250:6670:0:-:0;;;1748:6;1710:44;;1933:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1991:4;1980:7;:15;1975:66;;2034:7;2010:11;:31;;;;1975:66;2051:7;2073:10;2051:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1933:160;1250:6670;;;;;;",
+      "srcmap-runtime": "1250:6670:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5455:1062;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2610:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6791:1127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1710:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2099:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2447:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2344:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1638:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1675:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5455:1062::-;5542:4;5562:24;5594:18;5605:5;5594:9;:18::i;:::-;5562:50;;5622:25;5654:19;5665:6;5654:9;:19::i;:::-;5622:51;;5691:16;5684:50;;5729:5;5722:12;;;;;;5684:50;5813:17;:30;;;;;5834:9;5813:30;5808:62;;;5865:5;5858:12;;;;;;5808:62;5948:17;5947:18;:32;;;;;5970:9;5969:10;5947:32;5942:64;;;6001:5;5994:12;;;;;;5942:64;6082:15;6132:11;;6114:15;:29;6082:61;;6153:9;6185:5;:12;;;;6153:44;;6207:283;6221:1;6215:3;;;;;;;:7;6207:283;;;6277:5;6255:27;;:5;6261:1;6255:8;;;;;;;;;;;;;;;;;;:14;;;;;;;;;;;;:27;;;6254:79;;;;;6326:6;6304:28;;:5;6310:1;6304:8;;;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;:28;;;6254:79;:132;;;;;6376:9;6354:31;;:5;6360:1;6354:8;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;:31;;;6254:132;:182;;;;;6428:7;6407:5;6413:1;6407:8;;;;;;;;;;;;;;;;;;:18;;;:28;6254:182;6247:232;;;6474:5;6467:12;;;;;;;;6247:232;6207:283;;;6506:4;6499:11;;;;;;5455:1062;;;;;;:::o;2610:245::-;2672:4;2692:9;2716:7;:14;;;;2692:38;;2740:86;2754:1;2748:3;;;;;;;:7;2740:86;;;2786:7;2794:1;2786:10;;;;;;;;;;;;;;;;;;;;;;;;;2775:21;;:7;:21;;;2770:56;;;2822:4;2815:11;;;;;2770:56;2740:86;;;2843:5;2836:12;;;2610:245;;;;:::o;6791:1127::-;6867:38;6875:10;6887:6;6895:9;6867:7;:38::i;:::-;6860:118;;6919:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6860:118;7061:15;7115:11;;7097:15;:29;7061:65;;7136:9;7172:5;:12;;;;7136:48;;7194:99;7208:1;7202:3;;;;;;;:7;7194:99;;;7250:7;7229:5;7235:1;7229:8;;;;;;;;;;;;;;;;;;:18;;;:28;7224:69;;;7276:17;7290:1;7276:12;:17::i;:::-;7224:69;7194:99;;;7354:5;7378:130;;;;;;;;7400:10;7378:130;;;;;;7428:6;7378:130;;;;;;7452:15;7378:130;;;;7485:9;7378:130;;;;;7354:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7574:50;7592:10;7605:6;7613:9;7574:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7710:35;7726:6;7734:9;7710:14;:35::i;:::-;7869:1;7851:7;:14;;;;:19;7846:65;;;7899:10;7885:26;;;7846:65;6791:1127;;;;:::o;1710:44::-;;;;:::o;2099:239::-;2166:21;2176:10;2166:9;:21::i;:::-;2159:96;;2202:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2159:96;2281:4;2270:7;:15;2265:66;;2324:7;2300:11;:31;;;;2265:66;2099:239;:::o;2447:93::-;2494:4;2521:5;:12;;;;2514:19;;2447:93;:::o;2344:97::-;2393:4;2420:7;:14;;;;2413:21;;2344:97;:::o;1638:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2956:248::-;3015:11;3039:5;:12;;;;3015:36;;3061:59;3077:3;3069:5;;;;;;:11;3061:59;;;3110:5;3116:3;3110:10;;;;;;;;;;;;;;;;;;3095:5;3105:1;3101:3;:5;3095:12;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3061:59;;;3186:5;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:248;;:::o;4176:1148::-;4256:16;4295;4344:1;4340;4323:7;:14;;;;:18;;;;;;:22;4295:50;;4355:9;4383:5;:12;;;;4355:40;;4405:165;4419:1;4413:3;;;;;;;:7;4405:165;;;4466:6;4444:28;;:5;4450:1;4444:8;;;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;:28;;;4439:90;;;;;4518:9;4496:31;;:5;4502:1;4496:8;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;:31;;;4439:90;4435:135;;;4560:10;;;;;;;4435:135;4405:165;;;4678:8;4667;:19;4662:46;;;4701:7;;;;;4662:46;4766:9;4761:197;;;4831:7;4845:6;4831:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4761:197;;;4926:32;4950:6;4926:22;:32::i;:::-;4761:197;5002:32;5015:6;5023:9;5002:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;5127:5;:12;;;;5103:36;;5149:168;5163:1;5157:3;;;;;;;:7;5149:168;;;5210:6;5188:28;;:5;5194:1;5188:8;;;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;:28;;;5183:90;;;;;5262:9;5240:31;;:5;5246:1;5240:8;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;:31;;;5183:90;5179:138;;;5300:17;5314:1;5300:12;:17::i;:::-;5179:138;5149:168;;;4176:1148;;;;;;:::o;3210:862::-;3347:13;3371:5;:12;;;;3347:36;;3393:97;3407:1;3401:3;;;;;;;:7;3393:97;;;3446:8;3428:26;;:5;3434:1;3428:8;;;;;;;;;;;;;;;;;;:14;;;;;;;;;;;;:26;;;3423:67;;;3473:17;3487:1;3473:12;:17::i;:::-;3423:67;3393:97;;;3637:7;:14;;;;3613:38;;3661:405;3675:1;3669:3;;;;;;;:7;3661:405;;;3720:8;3706:22;;:7;3714:1;3706:10;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;3701:355;;;3761:11;3777:1;3761:17;;3796:11;3812:7;:14;;;;3796:30;;3844:71;3860:3;3852:5;;;;;;:11;3844:71;;;3903:7;3911:3;3903:12;;;;;;;;;;;;;;;;;;;;;;;;;3886:7;3898:1;3894:3;:5;3886:14;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3844:71;;;4004:7;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4035:7;;;;;3701:355;3661:405;;;3210:862;;;:::o",
+      "storage-layout": "{\"storage\":[{\"astId\":13,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"council\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_array(t_address)dyn_storage\"},{\"astId\":16,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"votes\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_array(t_struct(Vote)10_storage)dyn_storage\"},{\"astId\":19,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"votetimeout\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_uint256\"}],\"types\":{\"t_address\":{\"encoding\":\"inplace\",\"label\":\"address\",\"numberOfBytes\":\"20\"},\"t_array(t_address)dyn_storage\":{\"base\":\"t_address\",\"encoding\":\"dynamic_array\",\"label\":\"address[]\",\"numberOfBytes\":\"32\"},\"t_array(t_struct(Vote)10_storage)dyn_storage\":{\"base\":\"t_struct(Vote)10_storage\",\"encoding\":\"dynamic_array\",\"label\":\"struct Majority.Vote[]\",\"numberOfBytes\":\"32\"},\"t_bool\":{\"encoding\":\"inplace\",\"label\":\"bool\",\"numberOfBytes\":\"1\"},\"t_struct(Vote)10_storage\":{\"encoding\":\"inplace\",\"label\":\"struct Majority.Vote\",\"members\":[{\"astId\":3,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"voter\",\"offset\":0,\"slot\":\"0\",\"type\":\"t_address\"},{\"astId\":5,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"victim\",\"offset\":0,\"slot\":\"1\",\"type\":\"t_address\"},{\"astId\":7,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"voteStart\",\"offset\":0,\"slot\":\"2\",\"type\":\"t_uint256\"},{\"astId\":9,\"contract\":\"src/Majority/Majority.sol:Majority\",\"label\":\"promotion\",\"offset\":0,\"slot\":\"3\",\"type\":\"t_bool\"}],\"numberOfBytes\":\"128\"},\"t_uint256\":{\"encoding\":\"inplace\",\"label\":\"uint256\",\"numberOfBytes\":\"32\"}}}",
+      "userdoc": "{\"kind\":\"user\",\"methods\":{},\"version\":1}"
+    }
+  },
+  "sourceList": [
+    "src/Majority/Majority.sol"
+  ],
+  "sources": {
+    "src/Majority/Majority.sol": {
+      "AST": {
+        "absolutePath": "src/Majority/Majority.sol",
+        "exportedSymbols": {
+          "Majority": [
+            519
+          ]
+        },
+        "id": 520,
+        "license": "GPL-2.0-or-later",
+        "nodeType": "SourceUnit",
+        "nodes": [
+          {
+            "id": 1,
+            "literals": [
+              "solidity",
+              ">",
+              "0.7",
+              ".0"
+            ],
+            "nodeType": "PragmaDirective",
+            "src": "869:23:0"
+          },
+          {
+            "abstract": false,
+            "baseContracts": [],
+            "contractDependencies": [],
+            "contractKind": "contract",
+            "fullyImplemented": true,
+            "id": 519,
+            "linearizedBaseContracts": [
+              519
+            ],
+            "name": "Majority",
+            "nodeType": "ContractDefinition",
+            "nodes": [
+              {
+                "canonicalName": "Majority.Vote",
+                "id": 10,
+                "members": [
+                  {
+                    "constant": false,
+                    "id": 3,
+                    "mutability": "mutable",
+                    "name": "voter",
+                    "nodeType": "VariableDeclaration",
+                    "scope": 10,
+                    "src": "1387:25:0",
+                    "stateVariable": false,
+                    "storageLocation": "default",
+                    "typeDescriptions": {
+                      "typeIdentifier": "t_address",
+                      "typeString": "address"
+                    },
+                    "typeName": {
+                      "id": 2,
+                      "name": "address",
+                      "nodeType": "ElementaryTypeName",
+                      "src": "1387:7:0",
+                      "stateMutability": "nonpayable",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      }
+                    },
+                    "visibility": "internal"
+                  },
+                  {
+                    "constant": false,
+                    "id": 5,
+                    "mutability": "mutable",
+                    "name": "victim",
+                    "nodeType": "VariableDeclaration",
+                    "scope": 10,
+                    "src": "1437:26:0",
+                    "stateVariable": false,
+                    "storageLocation": "default",
+                    "typeDescriptions": {
+                      "typeIdentifier": "t_address",
+                      "typeString": "address"
+                    },
+                    "typeName": {
+                      "id": 4,
+                      "name": "address",
+                      "nodeType": "ElementaryTypeName",
+                      "src": "1437:7:0",
+                      "stateMutability": "nonpayable",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      }
+                    },
+                    "visibility": "internal"
+                  },
+                  {
+                    "constant": false,
+                    "id": 7,
+                    "mutability": "mutable",
+                    "name": "voteStart",
+                    "nodeType": "VariableDeclaration",
+                    "scope": 10,
+                    "src": "1506:29:0",
+                    "stateVariable": false,
+                    "storageLocation": "default",
+                    "typeDescriptions": {
+                      "typeIdentifier": "t_uint256",
+                      "typeString": "uint256"
+                    },
+                    "typeName": {
+                      "id": 6,
+                      "name": "uint",
+                      "nodeType": "ElementaryTypeName",
+                      "src": "1506:4:0",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_uint256",
+                        "typeString": "uint256"
+                      }
+                    },
+                    "visibility": "internal"
+                  },
+                  {
+                    "constant": false,
+                    "id": 9,
+                    "mutability": "mutable",
+                    "name": "promotion",
+                    "nodeType": "VariableDeclaration",
+                    "scope": 10,
+                    "src": "1572:19:0",
+                    "stateVariable": false,
+                    "storageLocation": "default",
+                    "typeDescriptions": {
+                      "typeIdentifier": "t_bool",
+                      "typeString": "bool"
+                    },
+                    "typeName": {
+                      "id": 8,
+                      "name": "bool",
+                      "nodeType": "ElementaryTypeName",
+                      "src": "1572:4:0",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      }
+                    },
+                    "visibility": "internal"
+                  }
+                ],
+                "name": "Vote",
+                "nodeType": "StructDefinition",
+                "scope": 519,
+                "src": "1365:268:0",
+                "visibility": "public"
+              },
+              {
+                "constant": false,
+                "functionSelector": "f4de6da6",
+                "id": 13,
+                "mutability": "mutable",
+                "name": "council",
+                "nodeType": "VariableDeclaration",
+                "scope": 519,
+                "src": "1638:31:0",
+                "stateVariable": true,
+                "storageLocation": "default",
+                "typeDescriptions": {
+                  "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                  "typeString": "address[]"
+                },
+                "typeName": {
+                  "baseType": {
+                    "id": 11,
+                    "name": "address",
+                    "nodeType": "ElementaryTypeName",
+                    "src": "1638:7:0",
+                    "stateMutability": "nonpayable",
+                    "typeDescriptions": {
+                      "typeIdentifier": "t_address",
+                      "typeString": "address"
+                    }
+                  },
+                  "id": 12,
+                  "nodeType": "ArrayTypeName",
+                  "src": "1638:9:0",
+                  "typeDescriptions": {
+                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+                    "typeString": "address[]"
+                  }
+                },
+                "visibility": "public"
+              },
+              {
+                "constant": false,
+                "functionSelector": "5df81330",
+                "id": 16,
+                "mutability": "mutable",
+                "name": "votes",
+                "nodeType": "VariableDeclaration",
+                "scope": 519,
+                "src": "1675:29:0",
+                "stateVariable": true,
+                "storageLocation": "default",
+                "typeDescriptions": {
+                  "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                  "typeString": "struct Majority.Vote[]"
+                },
+                "typeName": {
+                  "baseType": {
+                    "id": 14,
+                    "name": "Vote",
+                    "nodeType": "UserDefinedTypeName",
+                    "referencedDeclaration": 10,
+                    "src": "1675:4:0",
+                    "typeDescriptions": {
+                      "typeIdentifier": "t_struct$_Vote_$10_storage_ptr",
+                      "typeString": "struct Majority.Vote"
+                    }
+                  },
+                  "id": 15,
+                  "nodeType": "ArrayTypeName",
+                  "src": "1675:6:0",
+                  "typeDescriptions": {
+                    "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage_ptr",
+                    "typeString": "struct Majority.Vote[]"
+                  }
+                },
+                "visibility": "public"
+              },
+              {
+                "constant": false,
+                "functionSelector": "c0165ea5",
+                "id": 19,
+                "mutability": "mutable",
+                "name": "votetimeout",
+                "nodeType": "VariableDeclaration",
+                "scope": 519,
+                "src": "1710:44:0",
+                "stateVariable": true,
+                "storageLocation": "default",
+                "typeDescriptions": {
+                  "typeIdentifier": "t_uint256",
+                  "typeString": "uint256"
+                },
+                "typeName": {
+                  "id": 17,
+                  "name": "uint",
+                  "nodeType": "ElementaryTypeName",
+                  "src": "1710:4:0",
+                  "typeDescriptions": {
+                    "typeIdentifier": "t_uint256",
+                    "typeString": "uint256"
+                  }
+                },
+                "value": {
+                  "hexValue": "363034383030",
+                  "id": 18,
+                  "isConstant": false,
+                  "isLValue": false,
+                  "isPure": true,
+                  "kind": "number",
+                  "lValueRequested": false,
+                  "nodeType": "Literal",
+                  "src": "1748:6:0",
+                  "typeDescriptions": {
+                    "typeIdentifier": "t_rational_604800_by_1",
+                    "typeString": "int_const 604800"
+                  },
+                  "value": "604800"
+                },
+                "visibility": "public"
+              },
+              {
+                "anonymous": false,
+                "id": 27,
+                "name": "voteCast",
+                "nodeType": "EventDefinition",
+                "parameters": {
+                  "id": 26,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 21,
+                      "indexed": false,
+                      "mutability": "mutable",
+                      "name": "voter",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 27,
+                      "src": "1809:13:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 20,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "1809:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 23,
+                      "indexed": false,
+                      "mutability": "mutable",
+                      "name": "victim",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 27,
+                      "src": "1824:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 22,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "1824:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 25,
+                      "indexed": false,
+                      "mutability": "mutable",
+                      "name": "promotion",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 27,
+                      "src": "1840:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 24,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "1840:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "1807:49:0"
+                },
+                "src": "1779:78:0"
+              },
+              {
+                "anonymous": false,
+                "id": 33,
+                "name": "adminChange",
+                "nodeType": "EventDefinition",
+                "parameters": {
+                  "id": 32,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 29,
+                      "indexed": false,
+                      "mutability": "mutable",
+                      "name": "admin",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 33,
+                      "src": "1895:13:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 28,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "1895:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 31,
+                      "indexed": false,
+                      "mutability": "mutable",
+                      "name": "promotion",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 33,
+                      "src": "1910:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 30,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "1910:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "1893:33:0"
+                },
+                "src": "1862:65:0"
+              },
+              {
+                "body": {
+                  "id": 56,
+                  "nodeType": "Block",
+                  "src": "1965:128:0",
+                  "statements": [
+                    {
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 40,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 38,
+                          "name": "timeout",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 35,
+                          "src": "1980:7:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">=",
+                        "rightExpression": {
+                          "hexValue": "33363030",
+                          "id": 39,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "1991:4:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_3600_by_1",
+                            "typeString": "int_const 3600"
+                          },
+                          "value": "3600"
+                        },
+                        "src": "1980:15:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 45,
+                      "nodeType": "IfStatement",
+                      "src": "1975:66:0",
+                      "trueBody": {
+                        "expression": {
+                          "id": 43,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftHandSide": {
+                            "id": 41,
+                            "name": "votetimeout",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 19,
+                            "src": "2010:11:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "nodeType": "Assignment",
+                          "operator": "=",
+                          "rightHandSide": {
+                            "id": 42,
+                            "name": "timeout",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 35,
+                            "src": "2034:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "src": "2010:31:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "id": 44,
+                        "nodeType": "ExpressionStatement",
+                        "src": "2010:31:0"
+                      }
+                    },
+                    {
+                      "expression": {
+                        "arguments": [
+                          {
+                            "arguments": [
+                              {
+                                "expression": {
+                                  "id": 51,
+                                  "name": "msg",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": -15,
+                                  "src": "2073:3:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_magic_message",
+                                    "typeString": "msg"
+                                  }
+                                },
+                                "id": 52,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "memberName": "sender",
+                                "nodeType": "MemberAccess",
+                                "src": "2073:10:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_address_payable",
+                                  "typeString": "address payable"
+                                }
+                              }
+                            ],
+                            "expression": {
+                              "argumentTypes": [
+                                {
+                                  "typeIdentifier": "t_address_payable",
+                                  "typeString": "address payable"
+                                }
+                              ],
+                              "id": 50,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": true,
+                              "lValueRequested": false,
+                              "nodeType": "ElementaryTypeNameExpression",
+                              "src": "2065:7:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_type$_t_address_$",
+                                "typeString": "type(address)"
+                              },
+                              "typeName": {
+                                "id": 49,
+                                "name": "address",
+                                "nodeType": "ElementaryTypeName",
+                                "src": "2065:7:0",
+                                "typeDescriptions": {}
+                              }
+                            },
+                            "id": 53,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "kind": "typeConversion",
+                            "lValueRequested": false,
+                            "names": [],
+                            "nodeType": "FunctionCall",
+                            "src": "2065:19:0",
+                            "tryCall": false,
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          ],
+                          "expression": {
+                            "id": 46,
+                            "name": "council",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 13,
+                            "src": "2051:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                              "typeString": "address[] storage ref"
+                            }
+                          },
+                          "id": 48,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "push",
+                          "nodeType": "MemberAccess",
+                          "src": "2051:12:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
+                            "typeString": "function (address)"
+                          }
+                        },
+                        "id": 54,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "2051:35:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_tuple$__$",
+                          "typeString": "tuple()"
+                        }
+                      },
+                      "id": 55,
+                      "nodeType": "ExpressionStatement",
+                      "src": "2051:35:0"
+                    }
+                  ]
+                },
+                "id": 57,
+                "implemented": true,
+                "kind": "constructor",
+                "modifiers": [],
+                "name": "",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 36,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 35,
+                      "mutability": "mutable",
+                      "name": "timeout",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 57,
+                      "src": "1946:12:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_uint256",
+                        "typeString": "uint256"
+                      },
+                      "typeName": {
+                        "id": 34,
+                        "name": "uint",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "1946:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "1944:16:0"
+                },
+                "returnParameters": {
+                  "id": 37,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "1965:0:0"
+                },
+                "scope": 519,
+                "src": "1933:160:0",
+                "stateMutability": "nonpayable",
+                "virtual": false,
+                "visibility": "public"
+              },
+              {
+                "body": {
+                  "id": 80,
+                  "nodeType": "Block",
+                  "src": "2149:189:0",
+                  "statements": [
+                    {
+                      "condition": {
+                        "id": 66,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "nodeType": "UnaryOperation",
+                        "operator": "!",
+                        "prefix": true,
+                        "src": "2164:23:0",
+                        "subExpression": {
+                          "arguments": [
+                            {
+                              "expression": {
+                                "id": 63,
+                                "name": "msg",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": -15,
+                                "src": "2176:3:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_magic_message",
+                                  "typeString": "msg"
+                                }
+                              },
+                              "id": 64,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "memberName": "sender",
+                              "nodeType": "MemberAccess",
+                              "src": "2176:10:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_address_payable",
+                                "typeString": "address payable"
+                              }
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_address_payable",
+                                "typeString": "address payable"
+                              }
+                            ],
+                            "id": 62,
+                            "name": "isCouncil",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 127,
+                            "src": "2166:9:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
+                              "typeString": "function (address) view returns (bool)"
+                            }
+                          },
+                          "id": 65,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "2166:21:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 71,
+                      "nodeType": "IfStatement",
+                      "src": "2159:96:0",
+                      "trueBody": {
+                        "expression": {
+                          "arguments": [
+                            {
+                              "hexValue": "4f6e6c7920636f756e63696c206d656d62657273206d61792075736520746869732066756e6374696f6e2e",
+                              "id": 68,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": true,
+                              "kind": "string",
+                              "lValueRequested": false,
+                              "nodeType": "Literal",
+                              "src": "2209:45:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_stringliteral_4e931e13ad45558758047e08f56dbf652a745a7305490bdf535362653a5b6be0",
+                                "typeString": "literal_string \"Only council members may use this function.\""
+                              },
+                              "value": "Only council members may use this function."
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_stringliteral_4e931e13ad45558758047e08f56dbf652a745a7305490bdf535362653a5b6be0",
+                                "typeString": "literal_string \"Only council members may use this function.\""
+                              }
+                            ],
+                            "id": 67,
+                            "name": "revert",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [
+                              -19,
+                              -19
+                            ],
+                            "referencedDeclaration": -19,
+                            "src": "2202:6:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+                              "typeString": "function (string memory) pure"
+                            }
+                          },
+                          "id": 69,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "2202:53:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_tuple$__$",
+                            "typeString": "tuple()"
+                          }
+                        },
+                        "id": 70,
+                        "nodeType": "ExpressionStatement",
+                        "src": "2202:53:0"
+                      }
+                    },
+                    {
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 74,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 72,
+                          "name": "timeout",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 59,
+                          "src": "2270:7:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">=",
+                        "rightExpression": {
+                          "hexValue": "33363030",
+                          "id": 73,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "2281:4:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_3600_by_1",
+                            "typeString": "int_const 3600"
+                          },
+                          "value": "3600"
+                        },
+                        "src": "2270:15:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 79,
+                      "nodeType": "IfStatement",
+                      "src": "2265:66:0",
+                      "trueBody": {
+                        "expression": {
+                          "id": 77,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftHandSide": {
+                            "id": 75,
+                            "name": "votetimeout",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 19,
+                            "src": "2300:11:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "nodeType": "Assignment",
+                          "operator": "=",
+                          "rightHandSide": {
+                            "id": 76,
+                            "name": "timeout",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 59,
+                            "src": "2324:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "src": "2300:31:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "id": 78,
+                        "nodeType": "ExpressionStatement",
+                        "src": "2300:31:0"
+                      }
+                    }
+                  ]
+                },
+                "functionSelector": "c58a34cc",
+                "id": 81,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "setTimeout",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 60,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 59,
+                      "mutability": "mutable",
+                      "name": "timeout",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 81,
+                      "src": "2123:12:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_uint256",
+                        "typeString": "uint256"
+                      },
+                      "typeName": {
+                        "id": 58,
+                        "name": "uint",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "2123:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "2121:16:0"
+                },
+                "returnParameters": {
+                  "id": 61,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "2149:0:0"
+                },
+                "scope": 519,
+                "src": "2099:239:0",
+                "stateMutability": "nonpayable",
+                "virtual": false,
+                "visibility": "public"
+              },
+              {
+                "body": {
+                  "id": 89,
+                  "nodeType": "Block",
+                  "src": "2403:38:0",
+                  "statements": [
+                    {
+                      "expression": {
+                        "expression": {
+                          "id": 86,
+                          "name": "council",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 13,
+                          "src": "2420:7:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                            "typeString": "address[] storage ref"
+                          }
+                        },
+                        "id": 87,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "2420:14:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "functionReturnParameters": 85,
+                      "id": 88,
+                      "nodeType": "Return",
+                      "src": "2413:21:0"
+                    }
+                  ]
+                },
+                "functionSelector": "efaabd59",
+                "id": 90,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "councilLength",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 82,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "2369:2:0"
+                },
+                "returnParameters": {
+                  "id": 85,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 84,
+                      "mutability": "mutable",
+                      "name": "",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 90,
+                      "src": "2393:4:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_uint256",
+                        "typeString": "uint256"
+                      },
+                      "typeName": {
+                        "id": 83,
+                        "name": "uint",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "2393:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "2392:6:0"
+                },
+                "scope": 519,
+                "src": "2344:97:0",
+                "stateMutability": "view",
+                "virtual": false,
+                "visibility": "public"
+              },
+              {
+                "body": {
+                  "id": 98,
+                  "nodeType": "Block",
+                  "src": "2504:36:0",
+                  "statements": [
+                    {
+                      "expression": {
+                        "expression": {
+                          "id": 95,
+                          "name": "votes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 16,
+                          "src": "2521:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                          }
+                        },
+                        "id": 96,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "2521:12:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "functionReturnParameters": 94,
+                      "id": 97,
+                      "nodeType": "Return",
+                      "src": "2514:19:0"
+                    }
+                  ]
+                },
+                "functionSelector": "de4f6347",
+                "id": 99,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "votesLength",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 91,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "2470:2:0"
+                },
+                "returnParameters": {
+                  "id": 94,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 93,
+                      "mutability": "mutable",
+                      "name": "",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 99,
+                      "src": "2494:4:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_uint256",
+                        "typeString": "uint256"
+                      },
+                      "typeName": {
+                        "id": 92,
+                        "name": "uint",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "2494:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "2493:6:0"
+                },
+                "scope": 519,
+                "src": "2447:93:0",
+                "stateMutability": "view",
+                "virtual": false,
+                "visibility": "public"
+              },
+              {
+                "body": {
+                  "id": 126,
+                  "nodeType": "Block",
+                  "src": "2682:173:0",
+                  "statements": [
+                    {
+                      "assignments": [
+                        107
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 107,
+                          "mutability": "mutable",
+                          "name": "i",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 126,
+                          "src": "2692:9:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 106,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "2692:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 110,
+                      "initialValue": {
+                        "expression": {
+                          "id": 108,
+                          "name": "council",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 13,
+                          "src": "2716:7:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                            "typeString": "address[] storage ref"
+                          }
+                        },
+                        "id": 109,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "2716:14:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "2692:38:0"
+                    },
+                    {
+                      "body": {
+                        "condition": {
+                          "commonType": {
+                            "typeIdentifier": "t_address",
+                            "typeString": "address"
+                          },
+                          "id": 119,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftExpression": {
+                            "id": 115,
+                            "name": "subject",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 101,
+                            "src": "2775:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          "nodeType": "BinaryOperation",
+                          "operator": "==",
+                          "rightExpression": {
+                            "baseExpression": {
+                              "id": 116,
+                              "name": "council",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 13,
+                              "src": "2786:7:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                "typeString": "address[] storage ref"
+                              }
+                            },
+                            "id": 118,
+                            "indexExpression": {
+                              "id": 117,
+                              "name": "i",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 107,
+                              "src": "2794:1:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_uint256",
+                                "typeString": "uint256"
+                              }
+                            },
+                            "isConstant": false,
+                            "isLValue": true,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "IndexAccess",
+                            "src": "2786:10:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          "src": "2775:21:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "id": 122,
+                        "nodeType": "IfStatement",
+                        "src": "2770:56:0",
+                        "trueBody": {
+                          "expression": {
+                            "hexValue": "74727565",
+                            "id": 120,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": true,
+                            "kind": "bool",
+                            "lValueRequested": false,
+                            "nodeType": "Literal",
+                            "src": "2822:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            },
+                            "value": "true"
+                          },
+                          "functionReturnParameters": 105,
+                          "id": 121,
+                          "nodeType": "Return",
+                          "src": "2815:11:0"
+                        }
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 114,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 112,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "2748:3:0",
+                          "subExpression": {
+                            "id": 111,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 107,
+                            "src": "2748:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 113,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "2754:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "2748:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 123,
+                      "nodeType": "WhileStatement",
+                      "src": "2740:86:0"
+                    },
+                    {
+                      "expression": {
+                        "hexValue": "66616c7365",
+                        "id": 124,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": true,
+                        "kind": "bool",
+                        "lValueRequested": false,
+                        "nodeType": "Literal",
+                        "src": "2843:5:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        },
+                        "value": "false"
+                      },
+                      "functionReturnParameters": 105,
+                      "id": 125,
+                      "nodeType": "Return",
+                      "src": "2836:12:0"
+                    }
+                  ]
+                },
+                "functionSelector": "9aa360ec",
+                "id": 127,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "isCouncil",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 102,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 101,
+                      "mutability": "mutable",
+                      "name": "subject",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 127,
+                      "src": "2633:15:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 100,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "2633:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "2631:19:0"
+                },
+                "returnParameters": {
+                  "id": 105,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 104,
+                      "mutability": "mutable",
+                      "name": "",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 127,
+                      "src": "2672:4:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 103,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "2672:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "2671:6:0"
+                },
+                "scope": 519,
+                "src": "2610:245:0",
+                "stateMutability": "view",
+                "virtual": false,
+                "visibility": "public"
+              },
+              {
+                "body": {
+                  "id": 157,
+                  "nodeType": "Block",
+                  "src": "3005:199:0",
+                  "statements": [
+                    {
+                      "assignments": [
+                        133
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 133,
+                          "mutability": "mutable",
+                          "name": "max",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 157,
+                          "src": "3015:11:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 132,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "3015:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 136,
+                      "initialValue": {
+                        "expression": {
+                          "id": 134,
+                          "name": "votes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 16,
+                          "src": "3039:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                          }
+                        },
+                        "id": 135,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "3039:12:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "3015:36:0"
+                    },
+                    {
+                      "body": {
+                        "expression": {
+                          "id": 149,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftHandSide": {
+                            "baseExpression": {
+                              "id": 141,
+                              "name": "votes",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 16,
+                              "src": "3095:5:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                "typeString": "struct Majority.Vote storage ref[] storage ref"
+                              }
+                            },
+                            "id": 145,
+                            "indexExpression": {
+                              "commonType": {
+                                "typeIdentifier": "t_uint256",
+                                "typeString": "uint256"
+                              },
+                              "id": 144,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "leftExpression": {
+                                "id": 142,
+                                "name": "idx",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 129,
+                                "src": "3101:3:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              },
+                              "nodeType": "BinaryOperation",
+                              "operator": "-",
+                              "rightExpression": {
+                                "hexValue": "31",
+                                "id": 143,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": true,
+                                "kind": "number",
+                                "lValueRequested": false,
+                                "nodeType": "Literal",
+                                "src": "3105:1:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_rational_1_by_1",
+                                  "typeString": "int_const 1"
+                                },
+                                "value": "1"
+                              },
+                              "src": "3101:5:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_uint256",
+                                "typeString": "uint256"
+                              }
+                            },
+                            "isConstant": false,
+                            "isLValue": true,
+                            "isPure": false,
+                            "lValueRequested": true,
+                            "nodeType": "IndexAccess",
+                            "src": "3095:12:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_struct$_Vote_$10_storage",
+                              "typeString": "struct Majority.Vote storage ref"
+                            }
+                          },
+                          "nodeType": "Assignment",
+                          "operator": "=",
+                          "rightHandSide": {
+                            "baseExpression": {
+                              "id": 146,
+                              "name": "votes",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 16,
+                              "src": "3110:5:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                "typeString": "struct Majority.Vote storage ref[] storage ref"
+                              }
+                            },
+                            "id": 148,
+                            "indexExpression": {
+                              "id": 147,
+                              "name": "idx",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 129,
+                              "src": "3116:3:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_uint256",
+                                "typeString": "uint256"
+                              }
+                            },
+                            "isConstant": false,
+                            "isLValue": true,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "IndexAccess",
+                            "src": "3110:10:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_struct$_Vote_$10_storage",
+                              "typeString": "struct Majority.Vote storage ref"
+                            }
+                          },
+                          "src": "3095:25:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_struct$_Vote_$10_storage",
+                            "typeString": "struct Majority.Vote storage ref"
+                          }
+                        },
+                        "id": 150,
+                        "nodeType": "ExpressionStatement",
+                        "src": "3095:25:0"
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 140,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 138,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "++",
+                          "prefix": true,
+                          "src": "3069:5:0",
+                          "subExpression": {
+                            "id": 137,
+                            "name": "idx",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 129,
+                            "src": "3071:3:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "<",
+                        "rightExpression": {
+                          "id": 139,
+                          "name": "max",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 133,
+                          "src": "3077:3:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "src": "3069:11:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 151,
+                      "nodeType": "WhileStatement",
+                      "src": "3061:59:0"
+                    },
+                    {
+                      "expression": {
+                        "arguments": [],
+                        "expression": {
+                          "argumentTypes": [],
+                          "expression": {
+                            "id": 152,
+                            "name": "votes",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 16,
+                            "src": "3186:5:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                              "typeString": "struct Majority.Vote storage ref[] storage ref"
+                            }
+                          },
+                          "id": 154,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "pop",
+                          "nodeType": "MemberAccess",
+                          "src": "3186:9:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
+                            "typeString": "function ()"
+                          }
+                        },
+                        "id": 155,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "3186:11:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_tuple$__$",
+                          "typeString": "tuple()"
+                        }
+                      },
+                      "id": 156,
+                      "nodeType": "ExpressionStatement",
+                      "src": "3186:11:0"
+                    }
+                  ]
+                },
+                "id": 158,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "_remove_vote",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 130,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 129,
+                      "mutability": "mutable",
+                      "name": "idx",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 158,
+                      "src": "2982:8:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_uint256",
+                        "typeString": "uint256"
+                      },
+                      "typeName": {
+                        "id": 128,
+                        "name": "uint",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "2982:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "2980:12:0"
+                },
+                "returnParameters": {
+                  "id": 131,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "3005:0:0"
+                },
+                "scope": 519,
+                "src": "2956:248:0",
+                "stateMutability": "nonpayable",
+                "virtual": false,
+                "visibility": "private"
+              },
+              {
+                "body": {
+                  "id": 232,
+                  "nodeType": "Block",
+                  "src": "3277:795:0",
+                  "statements": [
+                    {
+                      "assignments": [
+                        164
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 164,
+                          "mutability": "mutable",
+                          "name": "i",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 232,
+                          "src": "3347:13:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 163,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "3347:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 167,
+                      "initialValue": {
+                        "expression": {
+                          "id": 165,
+                          "name": "votes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 16,
+                          "src": "3371:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                          }
+                        },
+                        "id": 166,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "3371:12:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "3347:36:0"
+                    },
+                    {
+                      "body": {
+                        "condition": {
+                          "commonType": {
+                            "typeIdentifier": "t_address",
+                            "typeString": "address"
+                          },
+                          "id": 177,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftExpression": {
+                            "expression": {
+                              "baseExpression": {
+                                "id": 172,
+                                "name": "votes",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 16,
+                                "src": "3428:5:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                  "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                }
+                              },
+                              "id": 174,
+                              "indexExpression": {
+                                "id": 173,
+                                "name": "i",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 164,
+                                "src": "3434:1:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              },
+                              "isConstant": false,
+                              "isLValue": true,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "nodeType": "IndexAccess",
+                              "src": "3428:8:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                "typeString": "struct Majority.Vote storage ref"
+                              }
+                            },
+                            "id": 175,
+                            "isConstant": false,
+                            "isLValue": true,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "memberName": "voter",
+                            "nodeType": "MemberAccess",
+                            "referencedDeclaration": 3,
+                            "src": "3428:14:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          "nodeType": "BinaryOperation",
+                          "operator": "==",
+                          "rightExpression": {
+                            "id": 176,
+                            "name": "exmember",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 160,
+                            "src": "3446:8:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          "src": "3428:26:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "id": 182,
+                        "nodeType": "IfStatement",
+                        "src": "3423:67:0",
+                        "trueBody": {
+                          "expression": {
+                            "arguments": [
+                              {
+                                "id": 179,
+                                "name": "i",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 164,
+                                "src": "3487:1:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              }
+                            ],
+                            "expression": {
+                              "argumentTypes": [
+                                {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              ],
+                              "id": 178,
+                              "name": "_remove_vote",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 158,
+                              "src": "3473:12:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
+                                "typeString": "function (uint256)"
+                              }
+                            },
+                            "id": 180,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "kind": "functionCall",
+                            "lValueRequested": false,
+                            "names": [],
+                            "nodeType": "FunctionCall",
+                            "src": "3473:17:0",
+                            "tryCall": false,
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_tuple$__$",
+                              "typeString": "tuple()"
+                            }
+                          },
+                          "id": 181,
+                          "nodeType": "ExpressionStatement",
+                          "src": "3473:17:0"
+                        }
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 171,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 169,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "3401:3:0",
+                          "subExpression": {
+                            "id": 168,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 164,
+                            "src": "3401:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 170,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "3407:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "3401:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 183,
+                      "nodeType": "WhileStatement",
+                      "src": "3393:97:0"
+                    },
+                    {
+                      "expression": {
+                        "id": 187,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftHandSide": {
+                          "id": 184,
+                          "name": "i",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 164,
+                          "src": "3613:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "Assignment",
+                        "operator": "=",
+                        "rightHandSide": {
+                          "expression": {
+                            "id": 185,
+                            "name": "council",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 13,
+                            "src": "3637:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                              "typeString": "address[] storage ref"
+                            }
+                          },
+                          "id": 186,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "length",
+                          "nodeType": "MemberAccess",
+                          "src": "3637:14:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "src": "3613:38:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "id": 188,
+                      "nodeType": "ExpressionStatement",
+                      "src": "3613:38:0"
+                    },
+                    {
+                      "body": {
+                        "id": 230,
+                        "nodeType": "Block",
+                        "src": "3687:379:0",
+                        "statements": [
+                          {
+                            "condition": {
+                              "commonType": {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              },
+                              "id": 197,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "leftExpression": {
+                                "baseExpression": {
+                                  "id": 193,
+                                  "name": "council",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": 13,
+                                  "src": "3706:7:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                    "typeString": "address[] storage ref"
+                                  }
+                                },
+                                "id": 195,
+                                "indexExpression": {
+                                  "id": 194,
+                                  "name": "i",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": 164,
+                                  "src": "3714:1:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_uint256",
+                                    "typeString": "uint256"
+                                  }
+                                },
+                                "isConstant": false,
+                                "isLValue": true,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "nodeType": "IndexAccess",
+                                "src": "3706:10:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_address",
+                                  "typeString": "address"
+                                }
+                              },
+                              "nodeType": "BinaryOperation",
+                              "operator": "==",
+                              "rightExpression": {
+                                "id": 196,
+                                "name": "exmember",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 160,
+                                "src": "3720:8:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_address",
+                                  "typeString": "address"
+                                }
+                              },
+                              "src": "3706:22:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_bool",
+                                "typeString": "bool"
+                              }
+                            },
+                            "id": 229,
+                            "nodeType": "IfStatement",
+                            "src": "3701:355:0",
+                            "trueBody": {
+                              "id": 228,
+                              "nodeType": "Block",
+                              "src": "3743:313:0",
+                              "statements": [
+                                {
+                                  "assignments": [
+                                    199
+                                  ],
+                                  "declarations": [
+                                    {
+                                      "constant": false,
+                                      "id": 199,
+                                      "mutability": "mutable",
+                                      "name": "idx",
+                                      "nodeType": "VariableDeclaration",
+                                      "scope": 228,
+                                      "src": "3761:11:0",
+                                      "stateVariable": false,
+                                      "storageLocation": "default",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      },
+                                      "typeName": {
+                                        "id": 198,
+                                        "name": "uint",
+                                        "nodeType": "ElementaryTypeName",
+                                        "src": "3761:4:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_uint256",
+                                          "typeString": "uint256"
+                                        }
+                                      },
+                                      "visibility": "internal"
+                                    }
+                                  ],
+                                  "id": 201,
+                                  "initialValue": {
+                                    "id": 200,
+                                    "name": "i",
+                                    "nodeType": "Identifier",
+                                    "overloadedDeclarations": [],
+                                    "referencedDeclaration": 164,
+                                    "src": "3777:1:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_uint256",
+                                      "typeString": "uint256"
+                                    }
+                                  },
+                                  "nodeType": "VariableDeclarationStatement",
+                                  "src": "3761:17:0"
+                                },
+                                {
+                                  "assignments": [
+                                    203
+                                  ],
+                                  "declarations": [
+                                    {
+                                      "constant": false,
+                                      "id": 203,
+                                      "mutability": "mutable",
+                                      "name": "max",
+                                      "nodeType": "VariableDeclaration",
+                                      "scope": 228,
+                                      "src": "3796:11:0",
+                                      "stateVariable": false,
+                                      "storageLocation": "default",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      },
+                                      "typeName": {
+                                        "id": 202,
+                                        "name": "uint",
+                                        "nodeType": "ElementaryTypeName",
+                                        "src": "3796:4:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_uint256",
+                                          "typeString": "uint256"
+                                        }
+                                      },
+                                      "visibility": "internal"
+                                    }
+                                  ],
+                                  "id": 206,
+                                  "initialValue": {
+                                    "expression": {
+                                      "id": 204,
+                                      "name": "council",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 13,
+                                      "src": "3812:7:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                        "typeString": "address[] storage ref"
+                                      }
+                                    },
+                                    "id": 205,
+                                    "isConstant": false,
+                                    "isLValue": false,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "memberName": "length",
+                                    "nodeType": "MemberAccess",
+                                    "src": "3812:14:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_uint256",
+                                      "typeString": "uint256"
+                                    }
+                                  },
+                                  "nodeType": "VariableDeclarationStatement",
+                                  "src": "3796:30:0"
+                                },
+                                {
+                                  "body": {
+                                    "expression": {
+                                      "id": 219,
+                                      "isConstant": false,
+                                      "isLValue": false,
+                                      "isPure": false,
+                                      "lValueRequested": false,
+                                      "leftHandSide": {
+                                        "baseExpression": {
+                                          "id": 211,
+                                          "name": "council",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 13,
+                                          "src": "3886:7:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                            "typeString": "address[] storage ref"
+                                          }
+                                        },
+                                        "id": 215,
+                                        "indexExpression": {
+                                          "commonType": {
+                                            "typeIdentifier": "t_uint256",
+                                            "typeString": "uint256"
+                                          },
+                                          "id": 214,
+                                          "isConstant": false,
+                                          "isLValue": false,
+                                          "isPure": false,
+                                          "lValueRequested": false,
+                                          "leftExpression": {
+                                            "id": 212,
+                                            "name": "idx",
+                                            "nodeType": "Identifier",
+                                            "overloadedDeclarations": [],
+                                            "referencedDeclaration": 199,
+                                            "src": "3894:3:0",
+                                            "typeDescriptions": {
+                                              "typeIdentifier": "t_uint256",
+                                              "typeString": "uint256"
+                                            }
+                                          },
+                                          "nodeType": "BinaryOperation",
+                                          "operator": "-",
+                                          "rightExpression": {
+                                            "hexValue": "31",
+                                            "id": 213,
+                                            "isConstant": false,
+                                            "isLValue": false,
+                                            "isPure": true,
+                                            "kind": "number",
+                                            "lValueRequested": false,
+                                            "nodeType": "Literal",
+                                            "src": "3898:1:0",
+                                            "typeDescriptions": {
+                                              "typeIdentifier": "t_rational_1_by_1",
+                                              "typeString": "int_const 1"
+                                            },
+                                            "value": "1"
+                                          },
+                                          "src": "3894:5:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_uint256",
+                                            "typeString": "uint256"
+                                          }
+                                        },
+                                        "isConstant": false,
+                                        "isLValue": true,
+                                        "isPure": false,
+                                        "lValueRequested": true,
+                                        "nodeType": "IndexAccess",
+                                        "src": "3886:14:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_address",
+                                          "typeString": "address"
+                                        }
+                                      },
+                                      "nodeType": "Assignment",
+                                      "operator": "=",
+                                      "rightHandSide": {
+                                        "baseExpression": {
+                                          "id": 216,
+                                          "name": "council",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 13,
+                                          "src": "3903:7:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                            "typeString": "address[] storage ref"
+                                          }
+                                        },
+                                        "id": 218,
+                                        "indexExpression": {
+                                          "id": 217,
+                                          "name": "idx",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 199,
+                                          "src": "3911:3:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_uint256",
+                                            "typeString": "uint256"
+                                          }
+                                        },
+                                        "isConstant": false,
+                                        "isLValue": true,
+                                        "isPure": false,
+                                        "lValueRequested": false,
+                                        "nodeType": "IndexAccess",
+                                        "src": "3903:12:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_address",
+                                          "typeString": "address"
+                                        }
+                                      },
+                                      "src": "3886:29:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_address",
+                                        "typeString": "address"
+                                      }
+                                    },
+                                    "id": 220,
+                                    "nodeType": "ExpressionStatement",
+                                    "src": "3886:29:0"
+                                  },
+                                  "condition": {
+                                    "commonType": {
+                                      "typeIdentifier": "t_uint256",
+                                      "typeString": "uint256"
+                                    },
+                                    "id": 210,
+                                    "isConstant": false,
+                                    "isLValue": false,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "leftExpression": {
+                                      "id": 208,
+                                      "isConstant": false,
+                                      "isLValue": false,
+                                      "isPure": false,
+                                      "lValueRequested": false,
+                                      "nodeType": "UnaryOperation",
+                                      "operator": "++",
+                                      "prefix": true,
+                                      "src": "3852:5:0",
+                                      "subExpression": {
+                                        "id": 207,
+                                        "name": "idx",
+                                        "nodeType": "Identifier",
+                                        "overloadedDeclarations": [],
+                                        "referencedDeclaration": 199,
+                                        "src": "3854:3:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_uint256",
+                                          "typeString": "uint256"
+                                        }
+                                      },
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "nodeType": "BinaryOperation",
+                                    "operator": "<",
+                                    "rightExpression": {
+                                      "id": 209,
+                                      "name": "max",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 203,
+                                      "src": "3860:3:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "src": "3852:11:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_bool",
+                                      "typeString": "bool"
+                                    }
+                                  },
+                                  "id": 221,
+                                  "nodeType": "WhileStatement",
+                                  "src": "3844:71:0"
+                                },
+                                {
+                                  "expression": {
+                                    "arguments": [],
+                                    "expression": {
+                                      "argumentTypes": [],
+                                      "expression": {
+                                        "id": 222,
+                                        "name": "council",
+                                        "nodeType": "Identifier",
+                                        "overloadedDeclarations": [],
+                                        "referencedDeclaration": 13,
+                                        "src": "4004:7:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                          "typeString": "address[] storage ref"
+                                        }
+                                      },
+                                      "id": 224,
+                                      "isConstant": false,
+                                      "isLValue": false,
+                                      "isPure": false,
+                                      "lValueRequested": false,
+                                      "memberName": "pop",
+                                      "nodeType": "MemberAccess",
+                                      "src": "4004:11:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
+                                        "typeString": "function ()"
+                                      }
+                                    },
+                                    "id": 225,
+                                    "isConstant": false,
+                                    "isLValue": false,
+                                    "isPure": false,
+                                    "kind": "functionCall",
+                                    "lValueRequested": false,
+                                    "names": [],
+                                    "nodeType": "FunctionCall",
+                                    "src": "4004:13:0",
+                                    "tryCall": false,
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_tuple$__$",
+                                      "typeString": "tuple()"
+                                    }
+                                  },
+                                  "id": 226,
+                                  "nodeType": "ExpressionStatement",
+                                  "src": "4004:13:0"
+                                },
+                                {
+                                  "functionReturnParameters": 162,
+                                  "id": 227,
+                                  "nodeType": "Return",
+                                  "src": "4035:7:0"
+                                }
+                              ]
+                            }
+                          }
+                        ]
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 192,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 190,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "3669:3:0",
+                          "subExpression": {
+                            "id": 189,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 164,
+                            "src": "3669:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 191,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "3675:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "3669:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 231,
+                      "nodeType": "WhileStatement",
+                      "src": "3661:405:0"
+                    }
+                  ]
+                },
+                "id": 233,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "_remove_council_member",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 161,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 160,
+                      "mutability": "mutable",
+                      "name": "exmember",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 233,
+                      "src": "3246:16:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 159,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "3246:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "3244:20:0"
+                },
+                "returnParameters": {
+                  "id": 162,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "3277:0:0"
+                },
+                "scope": 519,
+                "src": "3210:862:0",
+                "stateMutability": "nonpayable",
+                "virtual": false,
+                "visibility": "private"
+              },
+              {
+                "body": {
+                  "id": 334,
+                  "nodeType": "Block",
+                  "src": "4246:1078:0",
+                  "statements": [
+                    {
+                      "assignments": [
+                        241
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 241,
+                          "mutability": "mutable",
+                          "name": "numvotes",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 334,
+                          "src": "4256:16:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 240,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "4256:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 243,
+                      "initialValue": {
+                        "hexValue": "30",
+                        "id": 242,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": true,
+                        "kind": "number",
+                        "lValueRequested": false,
+                        "nodeType": "Literal",
+                        "src": "4284:1:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_rational_0_by_1",
+                          "typeString": "int_const 0"
+                        },
+                        "value": "0"
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "4256:29:0"
+                    },
+                    {
+                      "assignments": [
+                        245
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 245,
+                          "mutability": "mutable",
+                          "name": "majority",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 334,
+                          "src": "4295:16:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 244,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "4295:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 252,
+                      "initialValue": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 251,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "commonType": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "id": 249,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftExpression": {
+                            "expression": {
+                              "id": 246,
+                              "name": "council",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 13,
+                              "src": "4323:7:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                "typeString": "address[] storage ref"
+                              }
+                            },
+                            "id": 247,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "memberName": "length",
+                            "nodeType": "MemberAccess",
+                            "src": "4323:14:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "nodeType": "BinaryOperation",
+                          "operator": "/",
+                          "rightExpression": {
+                            "hexValue": "32",
+                            "id": 248,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": true,
+                            "kind": "number",
+                            "lValueRequested": false,
+                            "nodeType": "Literal",
+                            "src": "4340:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_rational_2_by_1",
+                              "typeString": "int_const 2"
+                            },
+                            "value": "2"
+                          },
+                          "src": "4323:18:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "+",
+                        "rightExpression": {
+                          "hexValue": "31",
+                          "id": 250,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "4344:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_1_by_1",
+                            "typeString": "int_const 1"
+                          },
+                          "value": "1"
+                        },
+                        "src": "4323:22:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "4295:50:0"
+                    },
+                    {
+                      "assignments": [
+                        254
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 254,
+                          "mutability": "mutable",
+                          "name": "i",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 334,
+                          "src": "4355:9:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 253,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "4355:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 257,
+                      "initialValue": {
+                        "expression": {
+                          "id": 255,
+                          "name": "votes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 16,
+                          "src": "4383:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                          }
+                        },
+                        "id": 256,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "4383:12:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "4355:40:0"
+                    },
+                    {
+                      "body": {
+                        "condition": {
+                          "commonType": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "id": 276,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftExpression": {
+                            "components": [
+                              {
+                                "commonType": {
+                                  "typeIdentifier": "t_address",
+                                  "typeString": "address"
+                                },
+                                "id": 267,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "leftExpression": {
+                                  "expression": {
+                                    "baseExpression": {
+                                      "id": 262,
+                                      "name": "votes",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 16,
+                                      "src": "4444:5:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                        "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                      }
+                                    },
+                                    "id": 264,
+                                    "indexExpression": {
+                                      "id": 263,
+                                      "name": "i",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 254,
+                                      "src": "4450:1:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "isConstant": false,
+                                    "isLValue": true,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "nodeType": "IndexAccess",
+                                    "src": "4444:8:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                      "typeString": "struct Majority.Vote storage ref"
+                                    }
+                                  },
+                                  "id": 265,
+                                  "isConstant": false,
+                                  "isLValue": true,
+                                  "isPure": false,
+                                  "lValueRequested": false,
+                                  "memberName": "victim",
+                                  "nodeType": "MemberAccess",
+                                  "referencedDeclaration": 5,
+                                  "src": "4444:15:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_address",
+                                    "typeString": "address"
+                                  }
+                                },
+                                "nodeType": "BinaryOperation",
+                                "operator": "==",
+                                "rightExpression": {
+                                  "id": 266,
+                                  "name": "victim",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": 235,
+                                  "src": "4466:6:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_address",
+                                    "typeString": "address"
+                                  }
+                                },
+                                "src": "4444:28:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              }
+                            ],
+                            "id": 268,
+                            "isConstant": false,
+                            "isInlineArray": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "TupleExpression",
+                            "src": "4439:35:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "nodeType": "BinaryOperation",
+                          "operator": "&&",
+                          "rightExpression": {
+                            "components": [
+                              {
+                                "commonType": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                },
+                                "id": 274,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "leftExpression": {
+                                  "expression": {
+                                    "baseExpression": {
+                                      "id": 269,
+                                      "name": "votes",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 16,
+                                      "src": "4496:5:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                        "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                      }
+                                    },
+                                    "id": 271,
+                                    "indexExpression": {
+                                      "id": 270,
+                                      "name": "i",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 254,
+                                      "src": "4502:1:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "isConstant": false,
+                                    "isLValue": true,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "nodeType": "IndexAccess",
+                                    "src": "4496:8:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                      "typeString": "struct Majority.Vote storage ref"
+                                    }
+                                  },
+                                  "id": 272,
+                                  "isConstant": false,
+                                  "isLValue": true,
+                                  "isPure": false,
+                                  "lValueRequested": false,
+                                  "memberName": "promotion",
+                                  "nodeType": "MemberAccess",
+                                  "referencedDeclaration": 9,
+                                  "src": "4496:18:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  }
+                                },
+                                "nodeType": "BinaryOperation",
+                                "operator": "==",
+                                "rightExpression": {
+                                  "id": 273,
+                                  "name": "promotion",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": 237,
+                                  "src": "4518:9:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  }
+                                },
+                                "src": "4496:31:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              }
+                            ],
+                            "id": 275,
+                            "isConstant": false,
+                            "isInlineArray": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "TupleExpression",
+                            "src": "4494:35:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "src": "4439:90:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "id": 280,
+                        "nodeType": "IfStatement",
+                        "src": "4435:135:0",
+                        "trueBody": {
+                          "expression": {
+                            "id": 278,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "UnaryOperation",
+                            "operator": "++",
+                            "prefix": false,
+                            "src": "4560:10:0",
+                            "subExpression": {
+                              "id": 277,
+                              "name": "numvotes",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 241,
+                              "src": "4560:8:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_uint256",
+                                "typeString": "uint256"
+                              }
+                            },
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "id": 279,
+                          "nodeType": "ExpressionStatement",
+                          "src": "4560:10:0"
+                        }
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 261,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 259,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "4413:3:0",
+                          "subExpression": {
+                            "id": 258,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 254,
+                            "src": "4413:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 260,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "4419:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "4413:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 281,
+                      "nodeType": "WhileStatement",
+                      "src": "4405:165:0"
+                    },
+                    {
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 284,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 282,
+                          "name": "numvotes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 241,
+                          "src": "4667:8:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "<",
+                        "rightExpression": {
+                          "id": 283,
+                          "name": "majority",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 245,
+                          "src": "4678:8:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "src": "4667:19:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 286,
+                      "nodeType": "IfStatement",
+                      "src": "4662:46:0",
+                      "trueBody": {
+                        "functionReturnParameters": 239,
+                        "id": 285,
+                        "nodeType": "Return",
+                        "src": "4701:7:0"
+                      }
+                    },
+                    {
+                      "condition": {
+                        "id": 287,
+                        "name": "promotion",
+                        "nodeType": "Identifier",
+                        "overloadedDeclarations": [],
+                        "referencedDeclaration": 237,
+                        "src": "4766:9:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "falseBody": {
+                        "expression": {
+                          "arguments": [
+                            {
+                              "id": 295,
+                              "name": "victim",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 235,
+                              "src": "4950:6:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              }
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              }
+                            ],
+                            "id": 294,
+                            "name": "_remove_council_member",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 233,
+                            "src": "4926:22:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
+                              "typeString": "function (address)"
+                            }
+                          },
+                          "id": 296,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "4926:32:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_tuple$__$",
+                            "typeString": "tuple()"
+                          }
+                        },
+                        "id": 297,
+                        "nodeType": "ExpressionStatement",
+                        "src": "4926:32:0"
+                      },
+                      "id": 298,
+                      "nodeType": "IfStatement",
+                      "src": "4761:197:0",
+                      "trueBody": {
+                        "expression": {
+                          "arguments": [
+                            {
+                              "id": 291,
+                              "name": "victim",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 235,
+                              "src": "4845:6:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              }
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              }
+                            ],
+                            "expression": {
+                              "id": 288,
+                              "name": "council",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 13,
+                              "src": "4831:7:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                                "typeString": "address[] storage ref"
+                              }
+                            },
+                            "id": 290,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "memberName": "push",
+                            "nodeType": "MemberAccess",
+                            "src": "4831:12:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
+                              "typeString": "function (address)"
+                            }
+                          },
+                          "id": 292,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "4831:22:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_tuple$__$",
+                            "typeString": "tuple()"
+                          }
+                        },
+                        "id": 293,
+                        "nodeType": "ExpressionStatement",
+                        "src": "4831:22:0"
+                      }
+                    },
+                    {
+                      "eventCall": {
+                        "arguments": [
+                          {
+                            "id": 300,
+                            "name": "victim",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 235,
+                            "src": "5015:6:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          {
+                            "id": 301,
+                            "name": "promotion",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 237,
+                            "src": "5023:9:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            },
+                            {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          ],
+                          "id": 299,
+                          "name": "adminChange",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 33,
+                          "src": "5002:11:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$",
+                            "typeString": "function (address,bool)"
+                          }
+                        },
+                        "id": 302,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "5002:32:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_tuple$__$",
+                          "typeString": "tuple()"
+                        }
+                      },
+                      "id": 303,
+                      "nodeType": "EmitStatement",
+                      "src": "4997:37:0"
+                    },
+                    {
+                      "expression": {
+                        "id": 307,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftHandSide": {
+                          "id": 304,
+                          "name": "i",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 254,
+                          "src": "5103:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "Assignment",
+                        "operator": "=",
+                        "rightHandSide": {
+                          "expression": {
+                            "id": 305,
+                            "name": "votes",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 16,
+                            "src": "5127:5:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                              "typeString": "struct Majority.Vote storage ref[] storage ref"
+                            }
+                          },
+                          "id": 306,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "length",
+                          "nodeType": "MemberAccess",
+                          "src": "5127:12:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "src": "5103:36:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "id": 308,
+                      "nodeType": "ExpressionStatement",
+                      "src": "5103:36:0"
+                    },
+                    {
+                      "body": {
+                        "condition": {
+                          "commonType": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "id": 327,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftExpression": {
+                            "components": [
+                              {
+                                "commonType": {
+                                  "typeIdentifier": "t_address",
+                                  "typeString": "address"
+                                },
+                                "id": 318,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "leftExpression": {
+                                  "expression": {
+                                    "baseExpression": {
+                                      "id": 313,
+                                      "name": "votes",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 16,
+                                      "src": "5188:5:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                        "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                      }
+                                    },
+                                    "id": 315,
+                                    "indexExpression": {
+                                      "id": 314,
+                                      "name": "i",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 254,
+                                      "src": "5194:1:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "isConstant": false,
+                                    "isLValue": true,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "nodeType": "IndexAccess",
+                                    "src": "5188:8:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                      "typeString": "struct Majority.Vote storage ref"
+                                    }
+                                  },
+                                  "id": 316,
+                                  "isConstant": false,
+                                  "isLValue": true,
+                                  "isPure": false,
+                                  "lValueRequested": false,
+                                  "memberName": "victim",
+                                  "nodeType": "MemberAccess",
+                                  "referencedDeclaration": 5,
+                                  "src": "5188:15:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_address",
+                                    "typeString": "address"
+                                  }
+                                },
+                                "nodeType": "BinaryOperation",
+                                "operator": "==",
+                                "rightExpression": {
+                                  "id": 317,
+                                  "name": "victim",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": 235,
+                                  "src": "5210:6:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_address",
+                                    "typeString": "address"
+                                  }
+                                },
+                                "src": "5188:28:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              }
+                            ],
+                            "id": 319,
+                            "isConstant": false,
+                            "isInlineArray": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "TupleExpression",
+                            "src": "5183:35:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "nodeType": "BinaryOperation",
+                          "operator": "&&",
+                          "rightExpression": {
+                            "components": [
+                              {
+                                "commonType": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                },
+                                "id": 325,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "leftExpression": {
+                                  "expression": {
+                                    "baseExpression": {
+                                      "id": 320,
+                                      "name": "votes",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 16,
+                                      "src": "5240:5:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                        "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                      }
+                                    },
+                                    "id": 322,
+                                    "indexExpression": {
+                                      "id": 321,
+                                      "name": "i",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 254,
+                                      "src": "5246:1:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "isConstant": false,
+                                    "isLValue": true,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "nodeType": "IndexAccess",
+                                    "src": "5240:8:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                      "typeString": "struct Majority.Vote storage ref"
+                                    }
+                                  },
+                                  "id": 323,
+                                  "isConstant": false,
+                                  "isLValue": true,
+                                  "isPure": false,
+                                  "lValueRequested": false,
+                                  "memberName": "promotion",
+                                  "nodeType": "MemberAccess",
+                                  "referencedDeclaration": 9,
+                                  "src": "5240:18:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  }
+                                },
+                                "nodeType": "BinaryOperation",
+                                "operator": "==",
+                                "rightExpression": {
+                                  "id": 324,
+                                  "name": "promotion",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": 237,
+                                  "src": "5262:9:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  }
+                                },
+                                "src": "5240:31:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              }
+                            ],
+                            "id": 326,
+                            "isConstant": false,
+                            "isInlineArray": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "nodeType": "TupleExpression",
+                            "src": "5238:35:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "src": "5183:90:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "id": 332,
+                        "nodeType": "IfStatement",
+                        "src": "5179:138:0",
+                        "trueBody": {
+                          "expression": {
+                            "arguments": [
+                              {
+                                "id": 329,
+                                "name": "i",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 254,
+                                "src": "5314:1:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              }
+                            ],
+                            "expression": {
+                              "argumentTypes": [
+                                {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              ],
+                              "id": 328,
+                              "name": "_remove_vote",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 158,
+                              "src": "5300:12:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
+                                "typeString": "function (uint256)"
+                              }
+                            },
+                            "id": 330,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "kind": "functionCall",
+                            "lValueRequested": false,
+                            "names": [],
+                            "nodeType": "FunctionCall",
+                            "src": "5300:17:0",
+                            "tryCall": false,
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_tuple$__$",
+                              "typeString": "tuple()"
+                            }
+                          },
+                          "id": 331,
+                          "nodeType": "ExpressionStatement",
+                          "src": "5300:17:0"
+                        }
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 312,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 310,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "5157:3:0",
+                          "subExpression": {
+                            "id": 309,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 254,
+                            "src": "5157:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 311,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "5163:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "5157:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 333,
+                      "nodeType": "WhileStatement",
+                      "src": "5149:168:0"
+                    }
+                  ]
+                },
+                "id": 335,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "_promotedemote",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 238,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 235,
+                      "mutability": "mutable",
+                      "name": "victim",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 335,
+                      "src": "4201:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 234,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "4201:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 237,
+                      "mutability": "mutable",
+                      "name": "promotion",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 335,
+                      "src": "4217:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 236,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "4217:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "4199:34:0"
+                },
+                "returnParameters": {
+                  "id": 239,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "4246:0:0"
+                },
+                "scope": 519,
+                "src": "4176:1148:0",
+                "stateMutability": "nonpayable",
+                "virtual": false,
+                "visibility": "private"
+              },
+              {
+                "body": {
+                  "id": 431,
+                  "nodeType": "Block",
+                  "src": "5552:965:0",
+                  "statements": [
+                    {
+                      "assignments": [
+                        347
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 347,
+                          "mutability": "mutable",
+                          "name": "voterIsOnCouncil",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 431,
+                          "src": "5562:24:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "typeName": {
+                            "id": 346,
+                            "name": "bool",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "5562:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 351,
+                      "initialValue": {
+                        "arguments": [
+                          {
+                            "id": 349,
+                            "name": "voter",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 337,
+                            "src": "5605:5:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          ],
+                          "id": 348,
+                          "name": "isCouncil",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 127,
+                          "src": "5594:9:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
+                            "typeString": "function (address) view returns (bool)"
+                          }
+                        },
+                        "id": 350,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "5594:18:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "5562:50:0"
+                    },
+                    {
+                      "assignments": [
+                        353
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 353,
+                          "mutability": "mutable",
+                          "name": "victimIsOnCouncil",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 431,
+                          "src": "5622:25:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "typeName": {
+                            "id": 352,
+                            "name": "bool",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "5622:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 357,
+                      "initialValue": {
+                        "arguments": [
+                          {
+                            "id": 355,
+                            "name": "victim",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 339,
+                            "src": "5665:6:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          ],
+                          "id": 354,
+                          "name": "isCouncil",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 127,
+                          "src": "5654:9:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
+                            "typeString": "function (address) view returns (bool)"
+                          }
+                        },
+                        "id": 356,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "5654:19:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "5622:51:0"
+                    },
+                    {
+                      "condition": {
+                        "id": 359,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "nodeType": "UnaryOperation",
+                        "operator": "!",
+                        "prefix": true,
+                        "src": "5689:18:0",
+                        "subExpression": {
+                          "id": 358,
+                          "name": "voterIsOnCouncil",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 347,
+                          "src": "5691:16:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 362,
+                      "nodeType": "IfStatement",
+                      "src": "5684:50:0",
+                      "trueBody": {
+                        "expression": {
+                          "hexValue": "66616c7365",
+                          "id": 360,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "bool",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "5729:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "value": "false"
+                        },
+                        "functionReturnParameters": 345,
+                        "id": 361,
+                        "nodeType": "Return",
+                        "src": "5722:12:0"
+                      }
+                    },
+                    {
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        },
+                        "id": 365,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 363,
+                          "name": "victimIsOnCouncil",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 353,
+                          "src": "5813:17:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "&&",
+                        "rightExpression": {
+                          "id": 364,
+                          "name": "promotion",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 341,
+                          "src": "5834:9:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "src": "5813:30:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 368,
+                      "nodeType": "IfStatement",
+                      "src": "5808:62:0",
+                      "trueBody": {
+                        "expression": {
+                          "hexValue": "66616c7365",
+                          "id": 366,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "bool",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "5865:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "value": "false"
+                        },
+                        "functionReturnParameters": 345,
+                        "id": 367,
+                        "nodeType": "Return",
+                        "src": "5858:12:0"
+                      }
+                    },
+                    {
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        },
+                        "id": 373,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 370,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "!",
+                          "prefix": true,
+                          "src": "5947:18:0",
+                          "subExpression": {
+                            "id": 369,
+                            "name": "victimIsOnCouncil",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 353,
+                            "src": "5948:17:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "&&",
+                        "rightExpression": {
+                          "id": 372,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "!",
+                          "prefix": true,
+                          "src": "5969:10:0",
+                          "subExpression": {
+                            "id": 371,
+                            "name": "promotion",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 341,
+                            "src": "5970:9:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "src": "5947:32:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 376,
+                      "nodeType": "IfStatement",
+                      "src": "5942:64:0",
+                      "trueBody": {
+                        "expression": {
+                          "hexValue": "66616c7365",
+                          "id": 374,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "bool",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "6001:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          },
+                          "value": "false"
+                        },
+                        "functionReturnParameters": 345,
+                        "id": 375,
+                        "nodeType": "Return",
+                        "src": "5994:12:0"
+                      }
+                    },
+                    {
+                      "assignments": [
+                        378
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 378,
+                          "mutability": "mutable",
+                          "name": "ancient",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 431,
+                          "src": "6082:15:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 377,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "6082:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 383,
+                      "initialValue": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 382,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "expression": {
+                            "id": 379,
+                            "name": "block",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": -4,
+                            "src": "6114:5:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_magic_block",
+                              "typeString": "block"
+                            }
+                          },
+                          "id": 380,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "timestamp",
+                          "nodeType": "MemberAccess",
+                          "src": "6114:15:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "-",
+                        "rightExpression": {
+                          "id": 381,
+                          "name": "votetimeout",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 19,
+                          "src": "6132:11:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "src": "6114:29:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "6082:61:0"
+                    },
+                    {
+                      "assignments": [
+                        385
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 385,
+                          "mutability": "mutable",
+                          "name": "i",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 431,
+                          "src": "6153:9:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 384,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "6153:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 388,
+                      "initialValue": {
+                        "expression": {
+                          "id": 386,
+                          "name": "votes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 16,
+                          "src": "6185:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                          }
+                        },
+                        "id": 387,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "6185:12:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "6153:44:0"
+                    },
+                    {
+                      "body": {
+                        "id": 427,
+                        "nodeType": "Block",
+                        "src": "6233:257:0",
+                        "statements": [
+                          {
+                            "condition": {
+                              "commonType": {
+                                "typeIdentifier": "t_bool",
+                                "typeString": "bool"
+                              },
+                              "id": 423,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "leftExpression": {
+                                "commonType": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                },
+                                "id": 415,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "leftExpression": {
+                                  "commonType": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  },
+                                  "id": 407,
+                                  "isConstant": false,
+                                  "isLValue": false,
+                                  "isPure": false,
+                                  "lValueRequested": false,
+                                  "leftExpression": {
+                                    "components": [
+                                      {
+                                        "commonType": {
+                                          "typeIdentifier": "t_address",
+                                          "typeString": "address"
+                                        },
+                                        "id": 398,
+                                        "isConstant": false,
+                                        "isLValue": false,
+                                        "isPure": false,
+                                        "lValueRequested": false,
+                                        "leftExpression": {
+                                          "expression": {
+                                            "baseExpression": {
+                                              "id": 393,
+                                              "name": "votes",
+                                              "nodeType": "Identifier",
+                                              "overloadedDeclarations": [],
+                                              "referencedDeclaration": 16,
+                                              "src": "6255:5:0",
+                                              "typeDescriptions": {
+                                                "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                                "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                              }
+                                            },
+                                            "id": 395,
+                                            "indexExpression": {
+                                              "id": 394,
+                                              "name": "i",
+                                              "nodeType": "Identifier",
+                                              "overloadedDeclarations": [],
+                                              "referencedDeclaration": 385,
+                                              "src": "6261:1:0",
+                                              "typeDescriptions": {
+                                                "typeIdentifier": "t_uint256",
+                                                "typeString": "uint256"
+                                              }
+                                            },
+                                            "isConstant": false,
+                                            "isLValue": true,
+                                            "isPure": false,
+                                            "lValueRequested": false,
+                                            "nodeType": "IndexAccess",
+                                            "src": "6255:8:0",
+                                            "typeDescriptions": {
+                                              "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                              "typeString": "struct Majority.Vote storage ref"
+                                            }
+                                          },
+                                          "id": 396,
+                                          "isConstant": false,
+                                          "isLValue": true,
+                                          "isPure": false,
+                                          "lValueRequested": false,
+                                          "memberName": "voter",
+                                          "nodeType": "MemberAccess",
+                                          "referencedDeclaration": 3,
+                                          "src": "6255:14:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_address",
+                                            "typeString": "address"
+                                          }
+                                        },
+                                        "nodeType": "BinaryOperation",
+                                        "operator": "==",
+                                        "rightExpression": {
+                                          "id": 397,
+                                          "name": "voter",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 337,
+                                          "src": "6277:5:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_address",
+                                            "typeString": "address"
+                                          }
+                                        },
+                                        "src": "6255:27:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_bool",
+                                          "typeString": "bool"
+                                        }
+                                      }
+                                    ],
+                                    "id": 399,
+                                    "isConstant": false,
+                                    "isInlineArray": false,
+                                    "isLValue": false,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "nodeType": "TupleExpression",
+                                    "src": "6254:29:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_bool",
+                                      "typeString": "bool"
+                                    }
+                                  },
+                                  "nodeType": "BinaryOperation",
+                                  "operator": "&&",
+                                  "rightExpression": {
+                                    "components": [
+                                      {
+                                        "commonType": {
+                                          "typeIdentifier": "t_address",
+                                          "typeString": "address"
+                                        },
+                                        "id": 405,
+                                        "isConstant": false,
+                                        "isLValue": false,
+                                        "isPure": false,
+                                        "lValueRequested": false,
+                                        "leftExpression": {
+                                          "expression": {
+                                            "baseExpression": {
+                                              "id": 400,
+                                              "name": "votes",
+                                              "nodeType": "Identifier",
+                                              "overloadedDeclarations": [],
+                                              "referencedDeclaration": 16,
+                                              "src": "6304:5:0",
+                                              "typeDescriptions": {
+                                                "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                                "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                              }
+                                            },
+                                            "id": 402,
+                                            "indexExpression": {
+                                              "id": 401,
+                                              "name": "i",
+                                              "nodeType": "Identifier",
+                                              "overloadedDeclarations": [],
+                                              "referencedDeclaration": 385,
+                                              "src": "6310:1:0",
+                                              "typeDescriptions": {
+                                                "typeIdentifier": "t_uint256",
+                                                "typeString": "uint256"
+                                              }
+                                            },
+                                            "isConstant": false,
+                                            "isLValue": true,
+                                            "isPure": false,
+                                            "lValueRequested": false,
+                                            "nodeType": "IndexAccess",
+                                            "src": "6304:8:0",
+                                            "typeDescriptions": {
+                                              "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                              "typeString": "struct Majority.Vote storage ref"
+                                            }
+                                          },
+                                          "id": 403,
+                                          "isConstant": false,
+                                          "isLValue": true,
+                                          "isPure": false,
+                                          "lValueRequested": false,
+                                          "memberName": "victim",
+                                          "nodeType": "MemberAccess",
+                                          "referencedDeclaration": 5,
+                                          "src": "6304:15:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_address",
+                                            "typeString": "address"
+                                          }
+                                        },
+                                        "nodeType": "BinaryOperation",
+                                        "operator": "==",
+                                        "rightExpression": {
+                                          "id": 404,
+                                          "name": "victim",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 339,
+                                          "src": "6326:6:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_address",
+                                            "typeString": "address"
+                                          }
+                                        },
+                                        "src": "6304:28:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_bool",
+                                          "typeString": "bool"
+                                        }
+                                      }
+                                    ],
+                                    "id": 406,
+                                    "isConstant": false,
+                                    "isInlineArray": false,
+                                    "isLValue": false,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "nodeType": "TupleExpression",
+                                    "src": "6303:30:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_bool",
+                                      "typeString": "bool"
+                                    }
+                                  },
+                                  "src": "6254:79:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  }
+                                },
+                                "nodeType": "BinaryOperation",
+                                "operator": "&&",
+                                "rightExpression": {
+                                  "components": [
+                                    {
+                                      "commonType": {
+                                        "typeIdentifier": "t_bool",
+                                        "typeString": "bool"
+                                      },
+                                      "id": 413,
+                                      "isConstant": false,
+                                      "isLValue": false,
+                                      "isPure": false,
+                                      "lValueRequested": false,
+                                      "leftExpression": {
+                                        "expression": {
+                                          "baseExpression": {
+                                            "id": 408,
+                                            "name": "votes",
+                                            "nodeType": "Identifier",
+                                            "overloadedDeclarations": [],
+                                            "referencedDeclaration": 16,
+                                            "src": "6354:5:0",
+                                            "typeDescriptions": {
+                                              "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                              "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                            }
+                                          },
+                                          "id": 410,
+                                          "indexExpression": {
+                                            "id": 409,
+                                            "name": "i",
+                                            "nodeType": "Identifier",
+                                            "overloadedDeclarations": [],
+                                            "referencedDeclaration": 385,
+                                            "src": "6360:1:0",
+                                            "typeDescriptions": {
+                                              "typeIdentifier": "t_uint256",
+                                              "typeString": "uint256"
+                                            }
+                                          },
+                                          "isConstant": false,
+                                          "isLValue": true,
+                                          "isPure": false,
+                                          "lValueRequested": false,
+                                          "nodeType": "IndexAccess",
+                                          "src": "6354:8:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                            "typeString": "struct Majority.Vote storage ref"
+                                          }
+                                        },
+                                        "id": 411,
+                                        "isConstant": false,
+                                        "isLValue": true,
+                                        "isPure": false,
+                                        "lValueRequested": false,
+                                        "memberName": "promotion",
+                                        "nodeType": "MemberAccess",
+                                        "referencedDeclaration": 9,
+                                        "src": "6354:18:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_bool",
+                                          "typeString": "bool"
+                                        }
+                                      },
+                                      "nodeType": "BinaryOperation",
+                                      "operator": "==",
+                                      "rightExpression": {
+                                        "id": 412,
+                                        "name": "promotion",
+                                        "nodeType": "Identifier",
+                                        "overloadedDeclarations": [],
+                                        "referencedDeclaration": 341,
+                                        "src": "6376:9:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_bool",
+                                          "typeString": "bool"
+                                        }
+                                      },
+                                      "src": "6354:31:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_bool",
+                                        "typeString": "bool"
+                                      }
+                                    }
+                                  ],
+                                  "id": 414,
+                                  "isConstant": false,
+                                  "isInlineArray": false,
+                                  "isLValue": false,
+                                  "isPure": false,
+                                  "lValueRequested": false,
+                                  "nodeType": "TupleExpression",
+                                  "src": "6353:33:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_bool",
+                                    "typeString": "bool"
+                                  }
+                                },
+                                "src": "6254:132:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              },
+                              "nodeType": "BinaryOperation",
+                              "operator": "&&",
+                              "rightExpression": {
+                                "components": [
+                                  {
+                                    "commonType": {
+                                      "typeIdentifier": "t_uint256",
+                                      "typeString": "uint256"
+                                    },
+                                    "id": 421,
+                                    "isConstant": false,
+                                    "isLValue": false,
+                                    "isPure": false,
+                                    "lValueRequested": false,
+                                    "leftExpression": {
+                                      "expression": {
+                                        "baseExpression": {
+                                          "id": 416,
+                                          "name": "votes",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 16,
+                                          "src": "6407:5:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                          }
+                                        },
+                                        "id": 418,
+                                        "indexExpression": {
+                                          "id": 417,
+                                          "name": "i",
+                                          "nodeType": "Identifier",
+                                          "overloadedDeclarations": [],
+                                          "referencedDeclaration": 385,
+                                          "src": "6413:1:0",
+                                          "typeDescriptions": {
+                                            "typeIdentifier": "t_uint256",
+                                            "typeString": "uint256"
+                                          }
+                                        },
+                                        "isConstant": false,
+                                        "isLValue": true,
+                                        "isPure": false,
+                                        "lValueRequested": false,
+                                        "nodeType": "IndexAccess",
+                                        "src": "6407:8:0",
+                                        "typeDescriptions": {
+                                          "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                          "typeString": "struct Majority.Vote storage ref"
+                                        }
+                                      },
+                                      "id": 419,
+                                      "isConstant": false,
+                                      "isLValue": true,
+                                      "isPure": false,
+                                      "lValueRequested": false,
+                                      "memberName": "voteStart",
+                                      "nodeType": "MemberAccess",
+                                      "referencedDeclaration": 7,
+                                      "src": "6407:18:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "nodeType": "BinaryOperation",
+                                    "operator": ">",
+                                    "rightExpression": {
+                                      "id": 420,
+                                      "name": "ancient",
+                                      "nodeType": "Identifier",
+                                      "overloadedDeclarations": [],
+                                      "referencedDeclaration": 378,
+                                      "src": "6428:7:0",
+                                      "typeDescriptions": {
+                                        "typeIdentifier": "t_uint256",
+                                        "typeString": "uint256"
+                                      }
+                                    },
+                                    "src": "6407:28:0",
+                                    "typeDescriptions": {
+                                      "typeIdentifier": "t_bool",
+                                      "typeString": "bool"
+                                    }
+                                  }
+                                ],
+                                "id": 422,
+                                "isConstant": false,
+                                "isInlineArray": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "nodeType": "TupleExpression",
+                                "src": "6406:30:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              },
+                              "src": "6254:182:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_bool",
+                                "typeString": "bool"
+                              }
+                            },
+                            "id": 426,
+                            "nodeType": "IfStatement",
+                            "src": "6247:232:0",
+                            "trueBody": {
+                              "expression": {
+                                "hexValue": "66616c7365",
+                                "id": 424,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": true,
+                                "kind": "bool",
+                                "lValueRequested": false,
+                                "nodeType": "Literal",
+                                "src": "6474:5:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                },
+                                "value": "false"
+                              },
+                              "functionReturnParameters": 345,
+                              "id": 425,
+                              "nodeType": "Return",
+                              "src": "6467:12:0"
+                            }
+                          }
+                        ]
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 392,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 390,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "6215:3:0",
+                          "subExpression": {
+                            "id": 389,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 385,
+                            "src": "6215:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 391,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "6221:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "6215:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 428,
+                      "nodeType": "WhileStatement",
+                      "src": "6207:283:0"
+                    },
+                    {
+                      "expression": {
+                        "hexValue": "74727565",
+                        "id": 429,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": true,
+                        "kind": "bool",
+                        "lValueRequested": false,
+                        "nodeType": "Literal",
+                        "src": "6506:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        },
+                        "value": "true"
+                      },
+                      "functionReturnParameters": 345,
+                      "id": 430,
+                      "nodeType": "Return",
+                      "src": "6499:11:0"
+                    }
+                  ]
+                },
+                "functionSelector": "70c56edc",
+                "id": 432,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "mayVote",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 342,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 337,
+                      "mutability": "mutable",
+                      "name": "voter",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 432,
+                      "src": "5473:13:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 336,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "5473:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 339,
+                      "mutability": "mutable",
+                      "name": "victim",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 432,
+                      "src": "5488:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 338,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "5488:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 341,
+                      "mutability": "mutable",
+                      "name": "promotion",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 432,
+                      "src": "5504:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 340,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "5504:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "5471:49:0"
+                },
+                "returnParameters": {
+                  "id": 345,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 344,
+                      "mutability": "mutable",
+                      "name": "",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 432,
+                      "src": "5542:4:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 343,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "5542:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "5541:6:0"
+                },
+                "scope": 519,
+                "src": "5455:1062:0",
+                "stateMutability": "view",
+                "virtual": false,
+                "visibility": "public"
+              },
+              {
+                "body": {
+                  "id": 517,
+                  "nodeType": "Block",
+                  "src": "6850:1068:0",
+                  "statements": [
+                    {
+                      "condition": {
+                        "id": 445,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "nodeType": "UnaryOperation",
+                        "operator": "!",
+                        "prefix": true,
+                        "src": "6865:40:0",
+                        "subExpression": {
+                          "arguments": [
+                            {
+                              "expression": {
+                                "id": 440,
+                                "name": "msg",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": -15,
+                                "src": "6875:3:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_magic_message",
+                                  "typeString": "msg"
+                                }
+                              },
+                              "id": 441,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "memberName": "sender",
+                              "nodeType": "MemberAccess",
+                              "src": "6875:10:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_address_payable",
+                                "typeString": "address payable"
+                              }
+                            },
+                            {
+                              "id": 442,
+                              "name": "victim",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 434,
+                              "src": "6887:6:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              }
+                            },
+                            {
+                              "id": 443,
+                              "name": "promotion",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 436,
+                              "src": "6895:9:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_bool",
+                                "typeString": "bool"
+                              }
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_address_payable",
+                                "typeString": "address payable"
+                              },
+                              {
+                                "typeIdentifier": "t_address",
+                                "typeString": "address"
+                              },
+                              {
+                                "typeIdentifier": "t_bool",
+                                "typeString": "bool"
+                              }
+                            ],
+                            "id": 439,
+                            "name": "mayVote",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 432,
+                            "src": "6867:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bool_$returns$_t_bool_$",
+                              "typeString": "function (address,address,bool) view returns (bool)"
+                            }
+                          },
+                          "id": 444,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "6867:38:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 450,
+                      "nodeType": "IfStatement",
+                      "src": "6860:118:0",
+                      "trueBody": {
+                        "expression": {
+                          "arguments": [
+                            {
+                              "hexValue": "54686174207365656d7320726564756e64616e74206f72206973206f7468657277697365206e6f7420616c6c6f7765642e",
+                              "id": 447,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": true,
+                              "kind": "string",
+                              "lValueRequested": false,
+                              "nodeType": "Literal",
+                              "src": "6926:51:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_stringliteral_f0726338a759b4df8c81ab99abc67bf7b4f8fc2f3a9442d2ab50cfbb28d3cfbb",
+                                "typeString": "literal_string \"That seems redundant or is otherwise not allowed.\""
+                              },
+                              "value": "That seems redundant or is otherwise not allowed."
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_stringliteral_f0726338a759b4df8c81ab99abc67bf7b4f8fc2f3a9442d2ab50cfbb28d3cfbb",
+                                "typeString": "literal_string \"That seems redundant or is otherwise not allowed.\""
+                              }
+                            ],
+                            "id": 446,
+                            "name": "revert",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [
+                              -19,
+                              -19
+                            ],
+                            "referencedDeclaration": -19,
+                            "src": "6919:6:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
+                              "typeString": "function (string memory) pure"
+                            }
+                          },
+                          "id": 448,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "6919:59:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_tuple$__$",
+                            "typeString": "tuple()"
+                          }
+                        },
+                        "id": 449,
+                        "nodeType": "ExpressionStatement",
+                        "src": "6919:59:0"
+                      }
+                    },
+                    {
+                      "assignments": [
+                        452
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 452,
+                          "mutability": "mutable",
+                          "name": "ancient",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 517,
+                          "src": "7061:15:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 451,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "7061:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 457,
+                      "initialValue": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 456,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "expression": {
+                            "id": 453,
+                            "name": "block",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": -4,
+                            "src": "7097:5:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_magic_block",
+                              "typeString": "block"
+                            }
+                          },
+                          "id": 454,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "timestamp",
+                          "nodeType": "MemberAccess",
+                          "src": "7097:15:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "-",
+                        "rightExpression": {
+                          "id": 455,
+                          "name": "votetimeout",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 19,
+                          "src": "7115:11:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "src": "7097:29:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "7061:65:0"
+                    },
+                    {
+                      "assignments": [
+                        459
+                      ],
+                      "declarations": [
+                        {
+                          "constant": false,
+                          "id": 459,
+                          "mutability": "mutable",
+                          "name": "i",
+                          "nodeType": "VariableDeclaration",
+                          "scope": 517,
+                          "src": "7136:9:0",
+                          "stateVariable": false,
+                          "storageLocation": "default",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "typeName": {
+                            "id": 458,
+                            "name": "uint",
+                            "nodeType": "ElementaryTypeName",
+                            "src": "7136:4:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "visibility": "internal"
+                        }
+                      ],
+                      "id": 462,
+                      "initialValue": {
+                        "expression": {
+                          "id": 460,
+                          "name": "votes",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 16,
+                          "src": "7172:5:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                            "typeString": "struct Majority.Vote storage ref[] storage ref"
+                          }
+                        },
+                        "id": 461,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "memberName": "length",
+                        "nodeType": "MemberAccess",
+                        "src": "7172:12:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        }
+                      },
+                      "nodeType": "VariableDeclarationStatement",
+                      "src": "7136:48:0"
+                    },
+                    {
+                      "body": {
+                        "condition": {
+                          "commonType": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          },
+                          "id": 472,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "leftExpression": {
+                            "expression": {
+                              "baseExpression": {
+                                "id": 467,
+                                "name": "votes",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 16,
+                                "src": "7229:5:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                                  "typeString": "struct Majority.Vote storage ref[] storage ref"
+                                }
+                              },
+                              "id": 469,
+                              "indexExpression": {
+                                "id": 468,
+                                "name": "i",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 459,
+                                "src": "7235:1:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              },
+                              "isConstant": false,
+                              "isLValue": true,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "nodeType": "IndexAccess",
+                              "src": "7229:8:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_struct$_Vote_$10_storage",
+                                "typeString": "struct Majority.Vote storage ref"
+                              }
+                            },
+                            "id": 470,
+                            "isConstant": false,
+                            "isLValue": true,
+                            "isPure": false,
+                            "lValueRequested": false,
+                            "memberName": "voteStart",
+                            "nodeType": "MemberAccess",
+                            "referencedDeclaration": 7,
+                            "src": "7229:18:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "nodeType": "BinaryOperation",
+                          "operator": "<",
+                          "rightExpression": {
+                            "id": 471,
+                            "name": "ancient",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 452,
+                            "src": "7250:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "src": "7229:28:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_bool",
+                            "typeString": "bool"
+                          }
+                        },
+                        "id": 477,
+                        "nodeType": "IfStatement",
+                        "src": "7224:69:0",
+                        "trueBody": {
+                          "expression": {
+                            "arguments": [
+                              {
+                                "id": 474,
+                                "name": "i",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 459,
+                                "src": "7290:1:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              }
+                            ],
+                            "expression": {
+                              "argumentTypes": [
+                                {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              ],
+                              "id": 473,
+                              "name": "_remove_vote",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 158,
+                              "src": "7276:12:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
+                                "typeString": "function (uint256)"
+                              }
+                            },
+                            "id": 475,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "kind": "functionCall",
+                            "lValueRequested": false,
+                            "names": [],
+                            "nodeType": "FunctionCall",
+                            "src": "7276:17:0",
+                            "tryCall": false,
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_tuple$__$",
+                              "typeString": "tuple()"
+                            }
+                          },
+                          "id": 476,
+                          "nodeType": "ExpressionStatement",
+                          "src": "7276:17:0"
+                        }
+                      },
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 466,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "id": 464,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "nodeType": "UnaryOperation",
+                          "operator": "--",
+                          "prefix": false,
+                          "src": "7202:3:0",
+                          "subExpression": {
+                            "id": 463,
+                            "name": "i",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 459,
+                            "src": "7202:1:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_uint256",
+                              "typeString": "uint256"
+                            }
+                          },
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": ">",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 465,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "7208:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "7202:7:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 478,
+                      "nodeType": "WhileStatement",
+                      "src": "7194:99:0"
+                    },
+                    {
+                      "expression": {
+                        "arguments": [
+                          {
+                            "arguments": [
+                              {
+                                "expression": {
+                                  "id": 483,
+                                  "name": "msg",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": -15,
+                                  "src": "7400:3:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_magic_message",
+                                    "typeString": "msg"
+                                  }
+                                },
+                                "id": 484,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "memberName": "sender",
+                                "nodeType": "MemberAccess",
+                                "src": "7400:10:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_address_payable",
+                                  "typeString": "address payable"
+                                }
+                              },
+                              {
+                                "id": 485,
+                                "name": "victim",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 434,
+                                "src": "7428:6:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_address",
+                                  "typeString": "address"
+                                }
+                              },
+                              {
+                                "expression": {
+                                  "id": 486,
+                                  "name": "block",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": -4,
+                                  "src": "7452:5:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_magic_block",
+                                    "typeString": "block"
+                                  }
+                                },
+                                "id": 487,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "memberName": "timestamp",
+                                "nodeType": "MemberAccess",
+                                "src": "7452:15:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                }
+                              },
+                              {
+                                "id": 488,
+                                "name": "promotion",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": 436,
+                                "src": "7485:9:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              }
+                            ],
+                            "expression": {
+                              "argumentTypes": [
+                                {
+                                  "typeIdentifier": "t_address_payable",
+                                  "typeString": "address payable"
+                                },
+                                {
+                                  "typeIdentifier": "t_address",
+                                  "typeString": "address"
+                                },
+                                {
+                                  "typeIdentifier": "t_uint256",
+                                  "typeString": "uint256"
+                                },
+                                {
+                                  "typeIdentifier": "t_bool",
+                                  "typeString": "bool"
+                                }
+                              ],
+                              "id": 482,
+                              "name": "Vote",
+                              "nodeType": "Identifier",
+                              "overloadedDeclarations": [],
+                              "referencedDeclaration": 10,
+                              "src": "7378:4:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_type$_t_struct$_Vote_$10_storage_ptr_$",
+                                "typeString": "type(struct Majority.Vote storage pointer)"
+                              }
+                            },
+                            "id": 489,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "kind": "structConstructorCall",
+                            "lValueRequested": false,
+                            "names": [],
+                            "nodeType": "FunctionCall",
+                            "src": "7378:130:0",
+                            "tryCall": false,
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_struct$_Vote_$10_memory_ptr",
+                              "typeString": "struct Majority.Vote memory"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_struct$_Vote_$10_memory_ptr",
+                              "typeString": "struct Majority.Vote memory"
+                            }
+                          ],
+                          "expression": {
+                            "id": 479,
+                            "name": "votes",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 16,
+                            "src": "7354:5:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_array$_t_struct$_Vote_$10_storage_$dyn_storage",
+                              "typeString": "struct Majority.Vote storage ref[] storage ref"
+                            }
+                          },
+                          "id": 481,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "push",
+                          "nodeType": "MemberAccess",
+                          "src": "7354:10:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Vote_$10_storage_$returns$__$",
+                            "typeString": "function (struct Majority.Vote storage ref)"
+                          }
+                        },
+                        "id": 490,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "7354:164:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_tuple$__$",
+                          "typeString": "tuple()"
+                        }
+                      },
+                      "id": 491,
+                      "nodeType": "ExpressionStatement",
+                      "src": "7354:164:0"
+                    },
+                    {
+                      "eventCall": {
+                        "arguments": [
+                          {
+                            "arguments": [
+                              {
+                                "expression": {
+                                  "id": 495,
+                                  "name": "msg",
+                                  "nodeType": "Identifier",
+                                  "overloadedDeclarations": [],
+                                  "referencedDeclaration": -15,
+                                  "src": "7592:3:0",
+                                  "typeDescriptions": {
+                                    "typeIdentifier": "t_magic_message",
+                                    "typeString": "msg"
+                                  }
+                                },
+                                "id": 496,
+                                "isConstant": false,
+                                "isLValue": false,
+                                "isPure": false,
+                                "lValueRequested": false,
+                                "memberName": "sender",
+                                "nodeType": "MemberAccess",
+                                "src": "7592:10:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_address_payable",
+                                  "typeString": "address payable"
+                                }
+                              }
+                            ],
+                            "expression": {
+                              "argumentTypes": [
+                                {
+                                  "typeIdentifier": "t_address_payable",
+                                  "typeString": "address payable"
+                                }
+                              ],
+                              "id": 494,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": true,
+                              "lValueRequested": false,
+                              "nodeType": "ElementaryTypeNameExpression",
+                              "src": "7584:7:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_type$_t_address_$",
+                                "typeString": "type(address)"
+                              },
+                              "typeName": {
+                                "id": 493,
+                                "name": "address",
+                                "nodeType": "ElementaryTypeName",
+                                "src": "7584:7:0",
+                                "typeDescriptions": {}
+                              }
+                            },
+                            "id": 497,
+                            "isConstant": false,
+                            "isLValue": false,
+                            "isPure": false,
+                            "kind": "typeConversion",
+                            "lValueRequested": false,
+                            "names": [],
+                            "nodeType": "FunctionCall",
+                            "src": "7584:19:0",
+                            "tryCall": false,
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          {
+                            "id": 498,
+                            "name": "victim",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 434,
+                            "src": "7605:6:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          {
+                            "id": 499,
+                            "name": "promotion",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 436,
+                            "src": "7613:9:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            },
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            },
+                            {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          ],
+                          "id": 492,
+                          "name": "voteCast",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 27,
+                          "src": "7574:8:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$",
+                            "typeString": "function (address,address,bool)"
+                          }
+                        },
+                        "id": 500,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "7574:50:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_tuple$__$",
+                          "typeString": "tuple()"
+                        }
+                      },
+                      "id": 501,
+                      "nodeType": "EmitStatement",
+                      "src": "7569:55:0"
+                    },
+                    {
+                      "expression": {
+                        "arguments": [
+                          {
+                            "id": 503,
+                            "name": "victim",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 434,
+                            "src": "7726:6:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            }
+                          },
+                          {
+                            "id": 504,
+                            "name": "promotion",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 436,
+                            "src": "7734:9:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          }
+                        ],
+                        "expression": {
+                          "argumentTypes": [
+                            {
+                              "typeIdentifier": "t_address",
+                              "typeString": "address"
+                            },
+                            {
+                              "typeIdentifier": "t_bool",
+                              "typeString": "bool"
+                            }
+                          ],
+                          "id": 502,
+                          "name": "_promotedemote",
+                          "nodeType": "Identifier",
+                          "overloadedDeclarations": [],
+                          "referencedDeclaration": 335,
+                          "src": "7710:14:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$",
+                            "typeString": "function (address,bool)"
+                          }
+                        },
+                        "id": 505,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "kind": "functionCall",
+                        "lValueRequested": false,
+                        "names": [],
+                        "nodeType": "FunctionCall",
+                        "src": "7710:35:0",
+                        "tryCall": false,
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_tuple$__$",
+                          "typeString": "tuple()"
+                        }
+                      },
+                      "id": 506,
+                      "nodeType": "ExpressionStatement",
+                      "src": "7710:35:0"
+                    },
+                    {
+                      "condition": {
+                        "commonType": {
+                          "typeIdentifier": "t_uint256",
+                          "typeString": "uint256"
+                        },
+                        "id": 510,
+                        "isConstant": false,
+                        "isLValue": false,
+                        "isPure": false,
+                        "lValueRequested": false,
+                        "leftExpression": {
+                          "expression": {
+                            "id": 507,
+                            "name": "council",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": 13,
+                            "src": "7851:7:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
+                              "typeString": "address[] storage ref"
+                            }
+                          },
+                          "id": 508,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "lValueRequested": false,
+                          "memberName": "length",
+                          "nodeType": "MemberAccess",
+                          "src": "7851:14:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_uint256",
+                            "typeString": "uint256"
+                          }
+                        },
+                        "nodeType": "BinaryOperation",
+                        "operator": "==",
+                        "rightExpression": {
+                          "hexValue": "30",
+                          "id": 509,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": true,
+                          "kind": "number",
+                          "lValueRequested": false,
+                          "nodeType": "Literal",
+                          "src": "7869:1:0",
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_rational_0_by_1",
+                            "typeString": "int_const 0"
+                          },
+                          "value": "0"
+                        },
+                        "src": "7851:19:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "id": 516,
+                      "nodeType": "IfStatement",
+                      "src": "7846:65:0",
+                      "trueBody": {
+                        "expression": {
+                          "arguments": [
+                            {
+                              "expression": {
+                                "id": 512,
+                                "name": "msg",
+                                "nodeType": "Identifier",
+                                "overloadedDeclarations": [],
+                                "referencedDeclaration": -15,
+                                "src": "7899:3:0",
+                                "typeDescriptions": {
+                                  "typeIdentifier": "t_magic_message",
+                                  "typeString": "msg"
+                                }
+                              },
+                              "id": 513,
+                              "isConstant": false,
+                              "isLValue": false,
+                              "isPure": false,
+                              "lValueRequested": false,
+                              "memberName": "sender",
+                              "nodeType": "MemberAccess",
+                              "src": "7899:10:0",
+                              "typeDescriptions": {
+                                "typeIdentifier": "t_address_payable",
+                                "typeString": "address payable"
+                              }
+                            }
+                          ],
+                          "expression": {
+                            "argumentTypes": [
+                              {
+                                "typeIdentifier": "t_address_payable",
+                                "typeString": "address payable"
+                              }
+                            ],
+                            "id": 511,
+                            "name": "selfdestruct",
+                            "nodeType": "Identifier",
+                            "overloadedDeclarations": [],
+                            "referencedDeclaration": -21,
+                            "src": "7885:12:0",
+                            "typeDescriptions": {
+                              "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$",
+                              "typeString": "function (address payable)"
+                            }
+                          },
+                          "id": 514,
+                          "isConstant": false,
+                          "isLValue": false,
+                          "isPure": false,
+                          "kind": "functionCall",
+                          "lValueRequested": false,
+                          "names": [],
+                          "nodeType": "FunctionCall",
+                          "src": "7885:26:0",
+                          "tryCall": false,
+                          "typeDescriptions": {
+                            "typeIdentifier": "t_tuple$__$",
+                            "typeString": "tuple()"
+                          }
+                        },
+                        "id": 515,
+                        "nodeType": "ExpressionStatement",
+                        "src": "7885:26:0"
+                      }
+                    }
+                  ]
+                },
+                "functionSelector": "bd041c4d",
+                "id": 518,
+                "implemented": true,
+                "kind": "function",
+                "modifiers": [],
+                "name": "vote",
+                "nodeType": "FunctionDefinition",
+                "parameters": {
+                  "id": 437,
+                  "nodeType": "ParameterList",
+                  "parameters": [
+                    {
+                      "constant": false,
+                      "id": 434,
+                      "mutability": "mutable",
+                      "name": "victim",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 518,
+                      "src": "6806:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_address",
+                        "typeString": "address"
+                      },
+                      "typeName": {
+                        "id": 433,
+                        "name": "address",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "6806:7:0",
+                        "stateMutability": "nonpayable",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_address",
+                          "typeString": "address"
+                        }
+                      },
+                      "visibility": "internal"
+                    },
+                    {
+                      "constant": false,
+                      "id": 436,
+                      "mutability": "mutable",
+                      "name": "promotion",
+                      "nodeType": "VariableDeclaration",
+                      "scope": 518,
+                      "src": "6822:14:0",
+                      "stateVariable": false,
+                      "storageLocation": "default",
+                      "typeDescriptions": {
+                        "typeIdentifier": "t_bool",
+                        "typeString": "bool"
+                      },
+                      "typeName": {
+                        "id": 435,
+                        "name": "bool",
+                        "nodeType": "ElementaryTypeName",
+                        "src": "6822:4:0",
+                        "typeDescriptions": {
+                          "typeIdentifier": "t_bool",
+                          "typeString": "bool"
+                        }
+                      },
+                      "visibility": "internal"
+                    }
+                  ],
+                  "src": "6804:34:0"
+                },
+                "returnParameters": {
+                  "id": 438,
+                  "nodeType": "ParameterList",
+                  "parameters": [],
+                  "src": "6850:0:0"
+                },
+                "scope": 519,
+                "src": "6791:1127:0",
+                "stateMutability": "nonpayable",
+                "virtual": false,
+                "visibility": "public"
+              }
+            ],
+            "scope": 520,
+            "src": "1250:6670:0"
+          }
+        ],
+        "src": "869:7052:0"
+      }
+    }
+  },
+  "version": "0.7.2+commit.51b20bc0.Linux.g++"
+}
diff --git a/src/Majority/Majority.sol b/src/Majority/Majority.sol
index 31c5bff..1c986d2 100644
--- a/src/Majority/Majority.sol
+++ b/src/Majority/Majority.sol
@@ -1,7 +1,17 @@
 // Robert Martin-Legene <robert@nic.ar>
 // vim:syntax:filetype=javascript:ai:sm
 
-pragma solidity ^0.5;
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+// Copyright 2020 de la Direccion General de Sistemas Informaticos - Secretaria Legal y Tecnica - Nacion - Argentina.
+//
+// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/
+
+pragma solidity >0.7.0;
 
 // This contract is supposed to maintain a list of accounts authorized
 // to control members of "the club" using a majority (n/1+1). We call
@@ -27,7 +37,7 @@ contract Majority {
     event               voteCast( address voter, address victim, bool promotion );
     event               adminChange( address admin, bool promotion );
 
-    constructor( uint timeout ) public
+    constructor( uint timeout )
     {
         if ( timeout >= 3600 )
             votetimeout         =   timeout;
@@ -70,7 +80,7 @@ contract Majority {
         while ( ++idx < max )
             votes[idx-1] = votes[idx];
         // "pop" the end of the list, making the list shorter.
-        votes.length--;
+	votes.pop();
     }
 
     function    _remove_council_member( address exmember ) private
@@ -92,7 +102,7 @@ contract Majority {
                 while ( ++idx < max )
                     council[idx-1] = council[idx];
                 // "pop" the end of the list, making the list shorter.
-                council.length--;
+                council.pop();
                 return;
             }
         }
-- 
GitLab