{
  "_format": "hh-sol-artifact-1",
  "contractName": "SimpleERC20",
  "sourceName": "src/ERC20/SimpleERC20.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "approveAndCall",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "tos",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "totalAmount",
          "type": "uint256"
        }
      ],
      "name": "distributeAlongWithETH",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "payForAndCall",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferAlongWithETH",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "transferAndCall",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "transferFromAndCall",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040523480156200001157600080fd5b50604051620016fb380380620016fb833981016040819052620000349162000181565b6040805180820190915260018152603160f81b60208201527f91ab3d17e3a50a9d89e63fd30b92be7f5336b03b287bb946787a83a9d62a27666200009760408051808201909152600c81526b053696d706c652045524332360a41b602082015290565b8051602091820120835184830120604080519384019490945292820152606081019190915230608082015260a00160408051601f19818403018152919052805160209091012060805250620000ed8282620000f5565b5050620001e4565b80600080828254620001089190620001bd565b90915550506001600160a01b0382166000908152600160205260408120805483929062000137908490620001bd565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600080604083850312156200019557600080fd5b82516001600160a01b0381168114620001ad57600080fd5b6020939093015192949293505050565b60008219821115620001df57634e487b7160e01b600052601160045260246000fd5b500190565b6080516114f46200020760003960008181610251015261091b01526114f46000f3fe6080604052600436106101445760003560e01c806363d994c7116100c0578063c1d34b8911610074578063d505accf11610059578063d505accf146103ea578063dd62ed3e1461040a578063e7fcb0651461042a57600080fd5b8063c1d34b89146103aa578063cae9ca51146103ca57600080fd5b80637ecebe00116100a55780637ecebe001461030b57806395d89b4114610341578063a9059cbb1461038a57600080fd5b806363d994c7146102b557806370a08231146102d557600080fd5b806323b872dd116101175780633644e515116100fc5780633644e5151461023f5780634000aea01461027357806342966c681461029357600080fd5b806323b872dd14610203578063313ce5671461022357600080fd5b806306fdde0314610149578063095ea7b3146101a15780630e02df54146101d157806318160ddd146101e4575b600080fd5b34801561015557600080fd5b5060408051808201909152600c81527f53696d706c65204552433230000000000000000000000000000000000000000060208201525b6040516101989190610f83565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004610ff0565b61043d565b6040519015158152602001610198565b6101c16101df366004611042565b610454565b3480156101f057600080fd5b506000545b604051908152602001610198565b34801561020f57600080fd5b506101c161021e36600461110d565b6105d3565b34801561022f57600080fd5b5060405160128152602001610198565b34801561024b57600080fd5b506101f57f000000000000000000000000000000000000000000000000000000000000000081565b34801561027f57600080fd5b506101c161028e366004611197565b6105ea565b34801561029f57600080fd5b506102b36102ae3660046111f3565b61069d565b005b3480156102c157600080fd5b506101c16102d036600461120c565b6106ac565b3480156102e157600080fd5b506101f56102f036600461127f565b6001600160a01b031660009081526001602052604090205490565b34801561031757600080fd5b506101f561032636600461127f565b6001600160a01b031660009081526003602052604090205490565b34801561034d57600080fd5b5061018b6040518060400160405280600681526020017f53494d504c45000000000000000000000000000000000000000000000000000081525081565b34801561039657600080fd5b506101c16103a5366004610ff0565b610762565b3480156103b657600080fd5b506101c16103c536600461120c565b61076f565b3480156103d657600080fd5b506101c16103e5366004611197565b6107c7565b3480156103f657600080fd5b506102b36104053660046112a3565b61081d565b34801561041657600080fd5b506101f561042536600461131a565b610ab0565b6101c1610438366004610ff0565b610af8565b600061044a338484610b3a565b5060015b92915050565b6000808351346104649190611369565b9050835181610473919061138b565b34146104c65760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f4d53475f56414c554500000000000000000000000000000060448201526064015b60405180910390fd5b60008451846104d59190611369565b90508451816104e4919061138b565b84146105325760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f544f54414c5f414d4f554e5400000000000000000000000060448201526064016104bd565b60005b85518110156105c75761056233878381518110610554576105546113aa565b602002602001015184610c08565b858181518110610574576105746113aa565b60200260200101516001600160a01b03166108fc849081150290604051600060405180830381858888f193505050501580156105b4573d6000803e3d6000fd5b50806105bf816113c0565b915050610535565b50600195945050505050565b60006105e0848484610dba565b5060019392505050565b60006105f7338686610c08565b6040517fa4c0ed360000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063a4c0ed3690610642903390889088908890600401611406565b602060405180830381600087803b15801561065c57600080fd5b505af1158015610670573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610694919061142f565b95945050505050565b336106a88183610e9f565b5050565b60006106b9338686610c08565b6040517f9b6be0650000000000000000000000000000000000000000000000000000000081526001600160a01b03861690639b6be065906107069033908a90899089908990600401611451565b602060405180830381600087803b15801561072057600080fd5b505af1158015610734573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610758919061142f565b9695505050505050565b600061044a338484610c08565b600061077c868686610dba565b6040517fa4c0ed360000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063a4c0ed3690610706908990889088908890600401611406565b60006107d4338686610b3a565b6040517eba451f0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169062ba451f90610642903390889088908890600401611406565b6001600160a01b0387166108735760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f5a45524f5f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b0387811660008181526003602090815260408083205481517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e0850190915280519101207f19010000000000000000000000000000000000000000000000000000000000006101008401527f0000000000000000000000000000000000000000000000000000000000000000610102840152610122830152906101420160408051601f1981840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa1580156109b3573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610a1d5760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f5349474e415455524500000000000000000000000000000060448201526064016104bd565b851580610a2a5750854211155b610a765760405162461bcd60e51b815260206004820152600860248201527f544f4f5f4c41544500000000000000000000000000000000000000000000000060448201526064016104bd565b610a8182600161148f565b6001600160a01b038a16600090815260036020526040902055610aa5898989610b3a565b505050505050505050565b60006001600160a01b038316301415610acc575060001961044e565b506001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610b05338484610c08565b6040516001600160a01b038416903480156108fc02916000818181858888f193505050501580156105e0573d6000803e3d6000fd5b6001600160a01b03831615801590610b5a57506001600160a01b03821615155b610ba65760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f5a45524f5f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216610c5e5760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f5a45524f5f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b038216301415610cb75760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f544849535f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b03831660009081526001602052604090205481811015610d205760405162461bcd60e51b815260206004820152601160248201527f4e4f545f454e4f5547485f544f4b454e5300000000000000000000000000000060448201526064016104bd565b610d2a82826114a7565b6001600160a01b038086166000908152600160205260408082209390935590851681529081208054849290610d6090849061148f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dac91815260200190565b60405180910390a350505050565b336001600160a01b03841614801590610ddc57506001600160a01b0383163014155b15610e8f576001600160a01b03831660009081526002602090815260408083203384529091529020546000198114610e8d5781811015610e5e5760405162461bcd60e51b815260206004820152601760248201527f4e4f545f415554484f495a45445f414c4c4f57414e434500000000000000000060448201526064016104bd565b610e6882826114a7565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b505b610e9a838383610c08565b505050565b6001600160a01b03821660009081526001602052604090205481811015610f085760405162461bcd60e51b815260206004820152601160248201527f4e4f545f454e4f5547485f544f4b454e5300000000000000000000000000000060448201526064016104bd565b610f1282826114a7565b6001600160a01b03841660009081526001602052604081209190915580548391908190610f409084906114a7565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bfb565b600060208083528351808285015260005b81811015610fb057858101830151858201604001528201610f94565b81811115610fc2576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610fed57600080fd5b50565b6000806040838503121561100357600080fd5b823561100e81610fd8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803561103d81610fd8565b919050565b6000806040838503121561105557600080fd5b823567ffffffffffffffff8082111561106d57600080fd5b818501915085601f83011261108157600080fd5b81356020828211156110955761109561101c565b8160051b604051601f19603f830116810181811086821117156110ba576110ba61101c565b6040529283528183019350848101820192898411156110d857600080fd5b948201945b838610156110fd576110ee86611032565b855294820194938201936110dd565b9997909101359750505050505050565b60008060006060848603121561112257600080fd5b833561112d81610fd8565b9250602084013561113d81610fd8565b929592945050506040919091013590565b60008083601f84011261116057600080fd5b50813567ffffffffffffffff81111561117857600080fd5b60208301915083602082850101111561119057600080fd5b9250929050565b600080600080606085870312156111ad57600080fd5b84356111b881610fd8565b935060208501359250604085013567ffffffffffffffff8111156111db57600080fd5b6111e78782880161114e565b95989497509550505050565b60006020828403121561120557600080fd5b5035919050565b60008060008060006080868803121561122457600080fd5b853561122f81610fd8565b9450602086013561123f81610fd8565b935060408601359250606086013567ffffffffffffffff81111561126257600080fd5b61126e8882890161114e565b969995985093965092949392505050565b60006020828403121561129157600080fd5b813561129c81610fd8565b9392505050565b600080600080600080600060e0888a0312156112be57600080fd5b87356112c981610fd8565b965060208801356112d981610fd8565b95506040880135945060608801359350608088013560ff811681146112fd57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561132d57600080fd5b823561133881610fd8565b9150602083013561134881610fd8565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261138657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156113a5576113a5611353565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156113d4576113d4611353565b5060010190565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6001600160a01b03851681528360208201526060604082015260006107586060830184866113db565b60006020828403121561144157600080fd5b8151801515811461129c57600080fd5b60006001600160a01b038088168352808716602084015250846040830152608060608301526114846080830184866113db565b979650505050505050565b600082198211156114a2576114a2611353565b500190565b6000828210156114b9576114b9611353565b50039056fea2646970667358221220b20068f711fe6df89f73cf9a6869e7b37d6698935c193de9dc7f5bd38ae2743b64736f6c63430008090033",
  "deployedBytecode": "0x6080604052600436106101445760003560e01c806363d994c7116100c0578063c1d34b8911610074578063d505accf11610059578063d505accf146103ea578063dd62ed3e1461040a578063e7fcb0651461042a57600080fd5b8063c1d34b89146103aa578063cae9ca51146103ca57600080fd5b80637ecebe00116100a55780637ecebe001461030b57806395d89b4114610341578063a9059cbb1461038a57600080fd5b806363d994c7146102b557806370a08231146102d557600080fd5b806323b872dd116101175780633644e515116100fc5780633644e5151461023f5780634000aea01461027357806342966c681461029357600080fd5b806323b872dd14610203578063313ce5671461022357600080fd5b806306fdde0314610149578063095ea7b3146101a15780630e02df54146101d157806318160ddd146101e4575b600080fd5b34801561015557600080fd5b5060408051808201909152600c81527f53696d706c65204552433230000000000000000000000000000000000000000060208201525b6040516101989190610f83565b60405180910390f35b3480156101ad57600080fd5b506101c16101bc366004610ff0565b61043d565b6040519015158152602001610198565b6101c16101df366004611042565b610454565b3480156101f057600080fd5b506000545b604051908152602001610198565b34801561020f57600080fd5b506101c161021e36600461110d565b6105d3565b34801561022f57600080fd5b5060405160128152602001610198565b34801561024b57600080fd5b506101f57f000000000000000000000000000000000000000000000000000000000000000081565b34801561027f57600080fd5b506101c161028e366004611197565b6105ea565b34801561029f57600080fd5b506102b36102ae3660046111f3565b61069d565b005b3480156102c157600080fd5b506101c16102d036600461120c565b6106ac565b3480156102e157600080fd5b506101f56102f036600461127f565b6001600160a01b031660009081526001602052604090205490565b34801561031757600080fd5b506101f561032636600461127f565b6001600160a01b031660009081526003602052604090205490565b34801561034d57600080fd5b5061018b6040518060400160405280600681526020017f53494d504c45000000000000000000000000000000000000000000000000000081525081565b34801561039657600080fd5b506101c16103a5366004610ff0565b610762565b3480156103b657600080fd5b506101c16103c536600461120c565b61076f565b3480156103d657600080fd5b506101c16103e5366004611197565b6107c7565b3480156103f657600080fd5b506102b36104053660046112a3565b61081d565b34801561041657600080fd5b506101f561042536600461131a565b610ab0565b6101c1610438366004610ff0565b610af8565b600061044a338484610b3a565b5060015b92915050565b6000808351346104649190611369565b9050835181610473919061138b565b34146104c65760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f4d53475f56414c554500000000000000000000000000000060448201526064015b60405180910390fd5b60008451846104d59190611369565b90508451816104e4919061138b565b84146105325760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f544f54414c5f414d4f554e5400000000000000000000000060448201526064016104bd565b60005b85518110156105c75761056233878381518110610554576105546113aa565b602002602001015184610c08565b858181518110610574576105746113aa565b60200260200101516001600160a01b03166108fc849081150290604051600060405180830381858888f193505050501580156105b4573d6000803e3d6000fd5b50806105bf816113c0565b915050610535565b50600195945050505050565b60006105e0848484610dba565b5060019392505050565b60006105f7338686610c08565b6040517fa4c0ed360000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063a4c0ed3690610642903390889088908890600401611406565b602060405180830381600087803b15801561065c57600080fd5b505af1158015610670573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610694919061142f565b95945050505050565b336106a88183610e9f565b5050565b60006106b9338686610c08565b6040517f9b6be0650000000000000000000000000000000000000000000000000000000081526001600160a01b03861690639b6be065906107069033908a90899089908990600401611451565b602060405180830381600087803b15801561072057600080fd5b505af1158015610734573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610758919061142f565b9695505050505050565b600061044a338484610c08565b600061077c868686610dba565b6040517fa4c0ed360000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063a4c0ed3690610706908990889088908890600401611406565b60006107d4338686610b3a565b6040517eba451f0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169062ba451f90610642903390889088908890600401611406565b6001600160a01b0387166108735760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f5a45524f5f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b0387811660008181526003602090815260408083205481517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98185015280830195909552948b166060850152608084018a905260a0840185905260c08085018a90528151808603909101815260e0850190915280519101207f19010000000000000000000000000000000000000000000000000000000000006101008401527f0000000000000000000000000000000000000000000000000000000000000000610102840152610122830152906101420160408051601f1981840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa1580156109b3573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610a1d5760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f5349474e415455524500000000000000000000000000000060448201526064016104bd565b851580610a2a5750854211155b610a765760405162461bcd60e51b815260206004820152600860248201527f544f4f5f4c41544500000000000000000000000000000000000000000000000060448201526064016104bd565b610a8182600161148f565b6001600160a01b038a16600090815260036020526040902055610aa5898989610b3a565b505050505050505050565b60006001600160a01b038316301415610acc575060001961044e565b506001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610b05338484610c08565b6040516001600160a01b038416903480156108fc02916000818181858888f193505050501580156105e0573d6000803e3d6000fd5b6001600160a01b03831615801590610b5a57506001600160a01b03821615155b610ba65760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f5a45524f5f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216610c5e5760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f5a45524f5f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b038216301415610cb75760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f544849535f4144445245535300000000000000000000000060448201526064016104bd565b6001600160a01b03831660009081526001602052604090205481811015610d205760405162461bcd60e51b815260206004820152601160248201527f4e4f545f454e4f5547485f544f4b454e5300000000000000000000000000000060448201526064016104bd565b610d2a82826114a7565b6001600160a01b038086166000908152600160205260408082209390935590851681529081208054849290610d6090849061148f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dac91815260200190565b60405180910390a350505050565b336001600160a01b03841614801590610ddc57506001600160a01b0383163014155b15610e8f576001600160a01b03831660009081526002602090815260408083203384529091529020546000198114610e8d5781811015610e5e5760405162461bcd60e51b815260206004820152601760248201527f4e4f545f415554484f495a45445f414c4c4f57414e434500000000000000000060448201526064016104bd565b610e6882826114a7565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b505b610e9a838383610c08565b505050565b6001600160a01b03821660009081526001602052604090205481811015610f085760405162461bcd60e51b815260206004820152601160248201527f4e4f545f454e4f5547485f544f4b454e5300000000000000000000000000000060448201526064016104bd565b610f1282826114a7565b6001600160a01b03841660009081526001602052604081209190915580548391908190610f409084906114a7565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610bfb565b600060208083528351808285015260005b81811015610fb057858101830151858201604001528201610f94565b81811115610fc2576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610fed57600080fd5b50565b6000806040838503121561100357600080fd5b823561100e81610fd8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b803561103d81610fd8565b919050565b6000806040838503121561105557600080fd5b823567ffffffffffffffff8082111561106d57600080fd5b818501915085601f83011261108157600080fd5b81356020828211156110955761109561101c565b8160051b604051601f19603f830116810181811086821117156110ba576110ba61101c565b6040529283528183019350848101820192898411156110d857600080fd5b948201945b838610156110fd576110ee86611032565b855294820194938201936110dd565b9997909101359750505050505050565b60008060006060848603121561112257600080fd5b833561112d81610fd8565b9250602084013561113d81610fd8565b929592945050506040919091013590565b60008083601f84011261116057600080fd5b50813567ffffffffffffffff81111561117857600080fd5b60208301915083602082850101111561119057600080fd5b9250929050565b600080600080606085870312156111ad57600080fd5b84356111b881610fd8565b935060208501359250604085013567ffffffffffffffff8111156111db57600080fd5b6111e78782880161114e565b95989497509550505050565b60006020828403121561120557600080fd5b5035919050565b60008060008060006080868803121561122457600080fd5b853561122f81610fd8565b9450602086013561123f81610fd8565b935060408601359250606086013567ffffffffffffffff81111561126257600080fd5b61126e8882890161114e565b969995985093965092949392505050565b60006020828403121561129157600080fd5b813561129c81610fd8565b9392505050565b600080600080600080600060e0888a0312156112be57600080fd5b87356112c981610fd8565b965060208801356112d981610fd8565b95506040880135945060608801359350608088013560ff811681146112fd57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561132d57600080fd5b823561133881610fd8565b9150602083013561134881610fd8565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261138657634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156113a5576113a5611353565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156113d4576113d4611353565b5060010190565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6001600160a01b03851681528360208201526060604082015260006107586060830184866113db565b60006020828403121561144157600080fd5b8151801515811461129c57600080fd5b60006001600160a01b038088168352808716602084015250846040830152608060608301526114846080830184866113db565b979650505050505050565b600082198211156114a2576114a2611353565b500190565b6000828210156114b9576114b9611353565b50039056fea2646970667358221220b20068f711fe6df89f73cf9a6869e7b37d6698935c193de9dc7f5bd38ae2743b64736f6c63430008090033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
