{
  "_format": "hh-sol-artifact-1",
  "contractName": "DefaultPool",
  "sourceName": "contracts/DefaultPool.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ControllerAlreadyInitialized",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "CollateralSent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "DefaultPoolBalanceUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "_collaterals",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "_amounts",
          "type": "uint256[]"
        }
      ],
      "name": "DefaultPoolBalancesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_VEUSDDebt",
          "type": "uint256"
        }
      ],
      "name": "DefaultPoolVEUSDDebtUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newBalance",
          "type": "uint256"
        }
      ],
      "name": "ETHBalanceUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "EtherSent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_newBalance",
          "type": "uint256"
        }
      ],
      "name": "VEUSDBalanceUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VEUSDDebt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        }
      ],
      "name": "addCollateralType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "decreaseDebt",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAllAmounts",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAllCollateral",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_collaterals",
          "type": "address[]"
        }
      ],
      "name": "getAmountsSubset",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "controllerIndices",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        }
      ],
      "name": "getCollateral",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        }
      ],
      "name": "getCollateralVC",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVC",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalVC",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVCAndRVC",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalVC",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalRVC",
          "type": "uint256"
        },
        {
          "internalType": "uint256[]",
          "name": "VCPerCollateral",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getVEUSDDebt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "increaseDebt",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_vaultManagerAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_vaultManagerLiquidationsAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_activePoolAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_controllerAddress",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        }
      ],
      "name": "logExtraCollateral",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_amounts",
          "type": "uint256[]"
        }
      ],
      "name": "receiveCollateral",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_amounts",
          "type": "uint256[]"
        }
      ],
      "name": "sendCollsToActivePool",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611c1c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638577d87611610097578063caf14b9511610066578063caf14b95146101fd578063d43dc8da14610212578063ec0d5e0c1461021b578063f8c8765e1461022e57600080fd5b80638577d876146101a05780639b56d6c9146101c1578063a7a24edd146101d4578063c6ba0936146101e757600080fd5b80632b7c7b11116100d35780632b7c7b111461015f5780633270a9e014610172578063485e22fe1461018557806381b7f1bf1461019857600080fd5b806301d40b63146101055780630d2e240914610120578063116426ae146101375780632a7ba1f71461014c575b600080fd5b61010d610241565b6040519081526020015b60405180910390f35b6101286102d5565b6040516101179392919061162e565b61014a61014536600461174f565b610379565b005b61014a61015a36600461180a565b61055a565b61014a61016d36600461180a565b6105ab565b61010d610180366004611823565b6105c1565b61014a610193366004611823565b610668565b60385461010d565b6101b36101ae36600461183e565b610850565b604051610117929190611873565b61010d6101cf366004611823565b61098f565b61014a6101e236600461174f565b610a3a565b6101ef610b57565b6040516101179291906118d1565b610205610c1a565b60405161011791906118e4565b61010d60385481565b61014a610229366004611823565b610c75565b61014a61023c3660046118f7565b610d0c565b600080546040517f97a4b9f70000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906397a4b9f79061028f9060369060379060040161194b565b602060405180830381865afa1580156102ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d091906119da565b905090565b600080546040517f0ffc967b00000000000000000000000000000000000000000000000000000000815282916060916001600160a01b0390911690630ffc967b906103289060369060379060040161194b565b600060405180830381865afa158015610345573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261036d9190810190611a4e565b91959094509092509050565b610381610ea8565b8151815181146103d85760405162461bcd60e51b815260206004820152601260248201527f44503a4c656e677468206d69736d61746368000000000000000000000000000060448201526064015b60405180910390fd5b60008054604051632d79b8eb60e01b81526001600160a01b0390911690632d79b8eb90610409908790600401611a9e565b600060405180830381865afa158015610426573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261044e9190810190611ab1565b905060005b828110156104d657600084828151811061046f5761046f611ae6565b60200260200101519050806000146104c557600086838151811061049557610495611ae6565b602002602001015190506104c381838686815181106104b6576104b6611ae6565b6020026020010151610ee3565b505b506104cf81611b12565b9050610453565b506035546040517fa7a24edd0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a7a24edd9061052290879087906004016118d1565b600060405180830381600087803b15801561053c57600080fd5b505af1158015610550573d6000803e3d6000fd5b5050505050505050565b610562610ea8565b806038546105709190611b2b565b60388190556040519081527f71b2108583adf2bf6a1645c7bf231b0c9e842cea66493fbc2ed2fac5ff07af039060200160405180910390a150565b6105b3610ea8565b806038546105709190611b3e565b600080546001600160a01b0316632e2b1a88836105dd8161098f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561063e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066291906119da565b92915050565b60365460005b8181101561080757826001600160a01b03166036600001828154811061069657610696611ae6565b6000918252602090912001546001600160a01b0316036107f5576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073491906119da565b9050806000036107865760405162461bcd60e51b815260206004820152601e60248201527f44503a436f6c6c61746572616c2062616c616e6365203020757064617465000060448201526064016103cf565b806036600101838154811061079d5761079d611ae6565b60009182526020918290200191909155604080516001600160a01b03871681529182018390527fcafa306d97bbac7bcdcb03e1b58c2624b7aaa17a5a85a70e04dd4a7a22b4e93d91015b60405180910390a150505050565b806107ff81611b12565b91505061066e565b5060405162461bcd60e51b815260206004820152601760248201527f44503a436f6c6c61746572616c206e6f74206f776e656400000000000000000060448201526064016103cf565b600054604051632d79b8eb60e01b815260609182916001600160a01b0390911690632d79b8eb90610885908690600401611a9e565b600060405180830381865afa1580156108a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108ca9190810190611ab1565b83519091508067ffffffffffffffff8111156108e8576108e8611656565b604051908082528060200260200182016040528015610911578160200160208202803683370190505b50925060005b8181101561098857603660010183828151811061093657610936611ae6565b60200260200101518154811061094e5761094e611ae6565b906000526020600020015484828151811061096b5761096b611ae6565b60209081029190910101528061098081611b12565b915050610917565b5050915091565b600080546040517fb31610db0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152603792169063b31610db90602401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1891906119da565b81548110610a2857610a28611ae6565b90600052602060002001549050919050565b610a42610fdc565b6040805160368054606060208202840181018552938301818152610b059484928491840182828015610a9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a7f575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610af557602002820191906000526020600020905b815481526020019060010190808311610ae1575b5050505050815250508383610ff6565b8051610b1991603791602090910190611593565b507f6391fbe8d7e4cc90b439d4e8d3dc07b9cbb23b914d46148b61b246bd9f638c5e8282604051610b4b9291906118d1565b60405180910390a15050565b6060806036600001603660010181805480602002602001604051908101604052809291908181526020018280548015610bb957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9b575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610c0b57602002820191906000526020600020905b815481526020019060010190808311610bf7575b50505050509050915091509091565b60606036600101805480602002602001604051908101604052809291908181526020018280548015610c6b57602002820191906000526020600020905b815481526020019060010190808311610c57575b5050505050905090565b610c7d6111dd565b6036805460018082019092557f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b801805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03939093169290921790915560378054918201815560009081527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae90910155565b603354610100900460ff1615808015610d2c5750603354600160ff909116105b80610d465750303b158015610d46575060335460ff166001145b610db85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103cf565b6033805460ff191660011790558015610ddb576033805461ff0019166101001790555b603380547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b0388811691909102919091179091556034805473ffffffffffffffffffffffffffffffffffffffff1990811687841617909155603580548216868416179055600080549091169184169190911790558015610ea1576033805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6033546201000090046001600160a01b03163314801590610ed457506034546001600160a01b03163314155b15610ee157610ee1611237565b565b603554603780546001600160a01b039092169184919084908110610f0957610f09611ae6565b9060005260206000200154610f1e9190611b2b565b6037805484908110610f3257610f32611ae6565b600091825260209091200155610f526001600160a01b038516828561127f565b604080516001600160a01b0386168152602081018590527fcafa306d97bbac7bcdcb03e1b58c2624b7aaa17a5a85a70e04dd4a7a22b4e93d910160405180910390a1604080516001600160a01b038087168252831660208201529081018490527fe664153eb516123e000bb334869ec912418f6fe4c1abb53fe2f848c947a8405d906060016107e7565b6035546001600160a01b03163314610ee157610ee1611237565b6060815160000361100c575060208301516111d6565b602084015151835160008267ffffffffffffffff81111561102f5761102f611656565b604051908082528060200260200182016040528015611058578160200160208202803683370190505b5090506000805b838210801561106d57508481105b1561117b57885180518290811061108657611086611ae6565b60200260200101516001600160a01b03168883815181106110a9576110a9611ae6565b60200260200101516001600160a01b03160361112e578682815181106110d1576110d1611ae6565b6020026020010151896020015182815181106110ef576110ef611ae6565b60200260200101516111019190611b3e565b83828151811061111357611113611ae6565b602090810291909101015261112782611b12565b915061116b565b8860200151818151811061114457611144611ae6565b602002602001015183828151811061115e5761115e611ae6565b6020026020010181815250505b61117481611b12565b905061105f565b848110156111ce578860200151818151811061119957611199611ae6565b60200260200101518382815181106111b3576111b3611ae6565b60209081029190910101526111c781611b12565b905061117b565b509093505050505b9392505050565b6000546001600160a01b03163314610ee15760405162461bcd60e51b815260206004820152600660248201527f5746432d5042000000000000000000000000000000000000000000000000000060448201526064016103cf565b60405162461bcd60e51b815260206004820152600660248201527f5746432d4450000000000000000000000000000000000000000000000000000060448201526064016103cf565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526112ff908490611304565b505050565b6000611359826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113ec9092919063ffffffff16565b905080516000148061137a57508080602001905181019061137a9190611b51565b6112ff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103cf565b60606113fb8484600085611403565b949350505050565b60608247101561147b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103cf565b600080866001600160a01b031685876040516114979190611b97565b60006040518083038185875af1925050503d80600081146114d4576040519150601f19603f3d011682016040523d82523d6000602084013e6114d9565b606091505b50915091506114ea878383876114f5565b979650505050505050565b6060831561156457825160000361155d576001600160a01b0385163b61155d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103cf565b50816113fb565b6113fb83838151156115795781518083602001fd5b8060405162461bcd60e51b81526004016103cf9190611bb3565b8280548282559060005260206000209081019282156115ce579160200282015b828111156115ce5782518255916020019190600101906115b3565b506115da9291506115de565b5090565b5b808211156115da57600081556001016115df565b600081518084526020808501945080840160005b8381101561162357815187529582019590820190600101611607565b509495945050505050565b83815282602082015260606040820152600061164d60608301846115f3565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561169557611695611656565b604052919050565b600067ffffffffffffffff8211156116b7576116b7611656565b5060051b60200190565b80356001600160a01b03811681146116d857600080fd5b919050565b600082601f8301126116ee57600080fd5b813560206117036116fe8361169d565b61166c565b82815260059290921b8401810191818101908684111561172257600080fd5b8286015b8481101561174457611737816116c1565b8352918301918301611726565b509695505050505050565b6000806040838503121561176257600080fd5b823567ffffffffffffffff8082111561177a57600080fd5b611786868387016116dd565b935060209150818501358181111561179d57600080fd5b85019050601f810186136117b057600080fd5b80356117be6116fe8261169d565b81815260059190911b820183019083810190888311156117dd57600080fd5b928401925b828410156117fb578335825292840192908401906117e2565b80955050505050509250929050565b60006020828403121561181c57600080fd5b5035919050565b60006020828403121561183557600080fd5b6111d6826116c1565b60006020828403121561185057600080fd5b813567ffffffffffffffff81111561186757600080fd5b6113fb848285016116dd565b60408152600061188660408301856115f3565b828103602084015261164d81856115f3565b600081518084526020808501945080840160005b838110156116235781516001600160a01b0316875295820195908201906001016118ac565b6040815260006118866040830185611898565b6020815260006111d660208301846115f3565b6000806000806080858703121561190d57600080fd5b611916856116c1565b9350611924602086016116c1565b9250611932604086016116c1565b9150611940606086016116c1565b905092959194509250565b60006040820160408352808554808352606085019150600092508683526020808420845b838110156119945781546001600160a01b03168552938201936001918201910161196f565b505085830381870152865480845287855281852093820192505b808510156119cd578354835260019485019490930192918101916119ae565b5090979650505050505050565b6000602082840312156119ec57600080fd5b5051919050565b600082601f830112611a0457600080fd5b81516020611a146116fe8361169d565b82815260059290921b84018101918181019086841115611a3357600080fd5b8286015b848110156117445780518352918301918301611a37565b600080600060608486031215611a6357600080fd5b8351925060208401519150604084015167ffffffffffffffff811115611a8857600080fd5b611a94868287016119f3565b9150509250925092565b6020815260006111d66020830184611898565b600060208284031215611ac357600080fd5b815167ffffffffffffffff811115611ada57600080fd5b6113fb848285016119f3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b2457611b24611afc565b5060010190565b8181038181111561066257610662611afc565b8082018082111561066257610662611afc565b600060208284031215611b6357600080fd5b815180151581146111d657600080fd5b60005b83811015611b8e578181015183820152602001611b76565b50506000910152565b60008251611ba9818460208701611b73565b9190910192915050565b6020815260008251806020840152611bd2816040850160208701611b73565b601f01601f1916919091016040019291505056fea2646970667358221220c13bb4b6707dec560087ad6e5b09f3c10850543d1a220b078cc87e944e1737e664736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80638577d87611610097578063caf14b9511610066578063caf14b95146101fd578063d43dc8da14610212578063ec0d5e0c1461021b578063f8c8765e1461022e57600080fd5b80638577d876146101a05780639b56d6c9146101c1578063a7a24edd146101d4578063c6ba0936146101e757600080fd5b80632b7c7b11116100d35780632b7c7b111461015f5780633270a9e014610172578063485e22fe1461018557806381b7f1bf1461019857600080fd5b806301d40b63146101055780630d2e240914610120578063116426ae146101375780632a7ba1f71461014c575b600080fd5b61010d610241565b6040519081526020015b60405180910390f35b6101286102d5565b6040516101179392919061162e565b61014a61014536600461174f565b610379565b005b61014a61015a36600461180a565b61055a565b61014a61016d36600461180a565b6105ab565b61010d610180366004611823565b6105c1565b61014a610193366004611823565b610668565b60385461010d565b6101b36101ae36600461183e565b610850565b604051610117929190611873565b61010d6101cf366004611823565b61098f565b61014a6101e236600461174f565b610a3a565b6101ef610b57565b6040516101179291906118d1565b610205610c1a565b60405161011791906118e4565b61010d60385481565b61014a610229366004611823565b610c75565b61014a61023c3660046118f7565b610d0c565b600080546040517f97a4b9f70000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906397a4b9f79061028f9060369060379060040161194b565b602060405180830381865afa1580156102ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d091906119da565b905090565b600080546040517f0ffc967b00000000000000000000000000000000000000000000000000000000815282916060916001600160a01b0390911690630ffc967b906103289060369060379060040161194b565b600060405180830381865afa158015610345573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261036d9190810190611a4e565b91959094509092509050565b610381610ea8565b8151815181146103d85760405162461bcd60e51b815260206004820152601260248201527f44503a4c656e677468206d69736d61746368000000000000000000000000000060448201526064015b60405180910390fd5b60008054604051632d79b8eb60e01b81526001600160a01b0390911690632d79b8eb90610409908790600401611a9e565b600060405180830381865afa158015610426573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261044e9190810190611ab1565b905060005b828110156104d657600084828151811061046f5761046f611ae6565b60200260200101519050806000146104c557600086838151811061049557610495611ae6565b602002602001015190506104c381838686815181106104b6576104b6611ae6565b6020026020010151610ee3565b505b506104cf81611b12565b9050610453565b506035546040517fa7a24edd0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a7a24edd9061052290879087906004016118d1565b600060405180830381600087803b15801561053c57600080fd5b505af1158015610550573d6000803e3d6000fd5b5050505050505050565b610562610ea8565b806038546105709190611b2b565b60388190556040519081527f71b2108583adf2bf6a1645c7bf231b0c9e842cea66493fbc2ed2fac5ff07af039060200160405180910390a150565b6105b3610ea8565b806038546105709190611b3e565b600080546001600160a01b0316632e2b1a88836105dd8161098f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa15801561063e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066291906119da565b92915050565b60365460005b8181101561080757826001600160a01b03166036600001828154811061069657610696611ae6565b6000918252602090912001546001600160a01b0316036107f5576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073491906119da565b9050806000036107865760405162461bcd60e51b815260206004820152601e60248201527f44503a436f6c6c61746572616c2062616c616e6365203020757064617465000060448201526064016103cf565b806036600101838154811061079d5761079d611ae6565b60009182526020918290200191909155604080516001600160a01b03871681529182018390527fcafa306d97bbac7bcdcb03e1b58c2624b7aaa17a5a85a70e04dd4a7a22b4e93d91015b60405180910390a150505050565b806107ff81611b12565b91505061066e565b5060405162461bcd60e51b815260206004820152601760248201527f44503a436f6c6c61746572616c206e6f74206f776e656400000000000000000060448201526064016103cf565b600054604051632d79b8eb60e01b815260609182916001600160a01b0390911690632d79b8eb90610885908690600401611a9e565b600060405180830381865afa1580156108a2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108ca9190810190611ab1565b83519091508067ffffffffffffffff8111156108e8576108e8611656565b604051908082528060200260200182016040528015610911578160200160208202803683370190505b50925060005b8181101561098857603660010183828151811061093657610936611ae6565b60200260200101518154811061094e5761094e611ae6565b906000526020600020015484828151811061096b5761096b611ae6565b60209081029190910101528061098081611b12565b915050610917565b5050915091565b600080546040517fb31610db0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152603792169063b31610db90602401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1891906119da565b81548110610a2857610a28611ae6565b90600052602060002001549050919050565b610a42610fdc565b6040805160368054606060208202840181018552938301818152610b059484928491840182828015610a9d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a7f575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610af557602002820191906000526020600020905b815481526020019060010190808311610ae1575b5050505050815250508383610ff6565b8051610b1991603791602090910190611593565b507f6391fbe8d7e4cc90b439d4e8d3dc07b9cbb23b914d46148b61b246bd9f638c5e8282604051610b4b9291906118d1565b60405180910390a15050565b6060806036600001603660010181805480602002602001604051908101604052809291908181526020018280548015610bb957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9b575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610c0b57602002820191906000526020600020905b815481526020019060010190808311610bf7575b50505050509050915091509091565b60606036600101805480602002602001604051908101604052809291908181526020018280548015610c6b57602002820191906000526020600020905b815481526020019060010190808311610c57575b5050505050905090565b610c7d6111dd565b6036805460018082019092557f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b801805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03939093169290921790915560378054918201815560009081527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae90910155565b603354610100900460ff1615808015610d2c5750603354600160ff909116105b80610d465750303b158015610d46575060335460ff166001145b610db85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103cf565b6033805460ff191660011790558015610ddb576033805461ff0019166101001790555b603380547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b0388811691909102919091179091556034805473ffffffffffffffffffffffffffffffffffffffff1990811687841617909155603580548216868416179055600080549091169184169190911790558015610ea1576033805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6033546201000090046001600160a01b03163314801590610ed457506034546001600160a01b03163314155b15610ee157610ee1611237565b565b603554603780546001600160a01b039092169184919084908110610f0957610f09611ae6565b9060005260206000200154610f1e9190611b2b565b6037805484908110610f3257610f32611ae6565b600091825260209091200155610f526001600160a01b038516828561127f565b604080516001600160a01b0386168152602081018590527fcafa306d97bbac7bcdcb03e1b58c2624b7aaa17a5a85a70e04dd4a7a22b4e93d910160405180910390a1604080516001600160a01b038087168252831660208201529081018490527fe664153eb516123e000bb334869ec912418f6fe4c1abb53fe2f848c947a8405d906060016107e7565b6035546001600160a01b03163314610ee157610ee1611237565b6060815160000361100c575060208301516111d6565b602084015151835160008267ffffffffffffffff81111561102f5761102f611656565b604051908082528060200260200182016040528015611058578160200160208202803683370190505b5090506000805b838210801561106d57508481105b1561117b57885180518290811061108657611086611ae6565b60200260200101516001600160a01b03168883815181106110a9576110a9611ae6565b60200260200101516001600160a01b03160361112e578682815181106110d1576110d1611ae6565b6020026020010151896020015182815181106110ef576110ef611ae6565b60200260200101516111019190611b3e565b83828151811061111357611113611ae6565b602090810291909101015261112782611b12565b915061116b565b8860200151818151811061114457611144611ae6565b602002602001015183828151811061115e5761115e611ae6565b6020026020010181815250505b61117481611b12565b905061105f565b848110156111ce578860200151818151811061119957611199611ae6565b60200260200101518382815181106111b3576111b3611ae6565b60209081029190910101526111c781611b12565b905061117b565b509093505050505b9392505050565b6000546001600160a01b03163314610ee15760405162461bcd60e51b815260206004820152600660248201527f5746432d5042000000000000000000000000000000000000000000000000000060448201526064016103cf565b60405162461bcd60e51b815260206004820152600660248201527f5746432d4450000000000000000000000000000000000000000000000000000060448201526064016103cf565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526112ff908490611304565b505050565b6000611359826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113ec9092919063ffffffff16565b905080516000148061137a57508080602001905181019061137a9190611b51565b6112ff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103cf565b60606113fb8484600085611403565b949350505050565b60608247101561147b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016103cf565b600080866001600160a01b031685876040516114979190611b97565b60006040518083038185875af1925050503d80600081146114d4576040519150601f19603f3d011682016040523d82523d6000602084013e6114d9565b606091505b50915091506114ea878383876114f5565b979650505050505050565b6060831561156457825160000361155d576001600160a01b0385163b61155d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103cf565b50816113fb565b6113fb83838151156115795781518083602001fd5b8060405162461bcd60e51b81526004016103cf9190611bb3565b8280548282559060005260206000209081019282156115ce579160200282015b828111156115ce5782518255916020019190600101906115b3565b506115da9291506115de565b5090565b5b808211156115da57600081556001016115df565b600081518084526020808501945080840160005b8381101561162357815187529582019590820190600101611607565b509495945050505050565b83815282602082015260606040820152600061164d60608301846115f3565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561169557611695611656565b604052919050565b600067ffffffffffffffff8211156116b7576116b7611656565b5060051b60200190565b80356001600160a01b03811681146116d857600080fd5b919050565b600082601f8301126116ee57600080fd5b813560206117036116fe8361169d565b61166c565b82815260059290921b8401810191818101908684111561172257600080fd5b8286015b8481101561174457611737816116c1565b8352918301918301611726565b509695505050505050565b6000806040838503121561176257600080fd5b823567ffffffffffffffff8082111561177a57600080fd5b611786868387016116dd565b935060209150818501358181111561179d57600080fd5b85019050601f810186136117b057600080fd5b80356117be6116fe8261169d565b81815260059190911b820183019083810190888311156117dd57600080fd5b928401925b828410156117fb578335825292840192908401906117e2565b80955050505050509250929050565b60006020828403121561181c57600080fd5b5035919050565b60006020828403121561183557600080fd5b6111d6826116c1565b60006020828403121561185057600080fd5b813567ffffffffffffffff81111561186757600080fd5b6113fb848285016116dd565b60408152600061188660408301856115f3565b828103602084015261164d81856115f3565b600081518084526020808501945080840160005b838110156116235781516001600160a01b0316875295820195908201906001016118ac565b6040815260006118866040830185611898565b6020815260006111d660208301846115f3565b6000806000806080858703121561190d57600080fd5b611916856116c1565b9350611924602086016116c1565b9250611932604086016116c1565b9150611940606086016116c1565b905092959194509250565b60006040820160408352808554808352606085019150600092508683526020808420845b838110156119945781546001600160a01b03168552938201936001918201910161196f565b505085830381870152865480845287855281852093820192505b808510156119cd578354835260019485019490930192918101916119ae565b5090979650505050505050565b6000602082840312156119ec57600080fd5b5051919050565b600082601f830112611a0457600080fd5b81516020611a146116fe8361169d565b82815260059290921b84018101918181019086841115611a3357600080fd5b8286015b848110156117445780518352918301918301611a37565b600080600060608486031215611a6357600080fd5b8351925060208401519150604084015167ffffffffffffffff811115611a8857600080fd5b611a94868287016119f3565b9150509250925092565b6020815260006111d66020830184611898565b600060208284031215611ac357600080fd5b815167ffffffffffffffff811115611ada57600080fd5b6113fb848285016119f3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b2457611b24611afc565b5060010190565b8181038181111561066257610662611afc565b8082018082111561066257610662611afc565b600060208284031215611b6357600080fd5b815180151581146111d657600080fd5b60005b83811015611b8e578181015183820152602001611b76565b50506000910152565b60008251611ba9818460208701611b73565b9190910192915050565b6020815260008251806020840152611bd2816040850160208701611b73565b601f01601f1916919091016040019291505056fea2646970667358221220c13bb4b6707dec560087ad6e5b09f3c10850543d1a220b078cc87e944e1737e664736f6c63430008130033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
