{
  "_format": "hh-sol-artifact-1",
  "contractName": "CollSurplusPool",
  "sourceName": "contracts/CollSurplusPool.sol",
  "abi": [
    {
      "inputs": [],
      "name": "AddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ControllerAlreadyInitialized",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "CollBalanceUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "CollateralSent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "thisRedemptionBonus",
          "type": "uint256"
        }
      ],
      "name": "RedemptionBonusLogged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "thisRedemptionBonus",
          "type": "uint256"
        }
      ],
      "name": "RedemptionBonusSent",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "accountRedemptionBonus",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "_tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_amounts",
          "type": "uint256[]"
        }
      ],
      "name": "accountSurplus",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        }
      ],
      "name": "addCollateralType",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimCollateral",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAllCollateral",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_collateral",
          "type": "address"
        }
      ],
      "name": "getAmountClaimable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "getAmountsClaimable",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCollVC",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "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": [],
      "name": "getEntireSystemColl",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getEntireSystemDebt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "getRedemptionBonus",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalRedemptionBonus",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "hasClaimableCollateral",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_borrowerOperationsAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_vaultManagerLiquidationsAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_vaultManagerRedemptionsAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_activePoolAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_defaultPoolAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_controllerAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_veusdTokenAddress",
          "type": "address"
        }
      ],
      "name": "initialize",
      "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": "",
          "type": "address"
        }
      ],
      "name": "redemptionBonus",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalRedemptionBonus",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50612569806100206000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063887105d3116100b2578063c6ba093611610081578063e4e7861411610066578063e4e786141461026c578063ec0d5e0c1461027f578063f75927841461029257600080fd5b8063c6ba09361461024e578063dd33cf031461026457600080fd5b8063887105d31461020d5780639b56d6c9146102155780639efc9e2014610228578063a7a24edd1461023b57600080fd5b8063524a91e41161010957806361721554116100ee57806361721554146101ea5780636f0b0c1c146101fd578063795d26c31461020557600080fd5b8063524a91e4146101ae5780635ecbb1b1146101c157600080fd5b8063139728d11461013b57806328ad1fcc1461016e5780632efac5b0146101765780633587647614610199575b600080fd5b61015b610149366004611db4565b606d6020526000908152604090205481565b6040519081526020015b60405180910390f35b606e5461015b565b610189610184366004611db4565b61029b565b6040519015158152602001610165565b6101ac6101a7366004611dd1565b61037b565b005b6101ac6101bc366004611e67565b61051d565b61015b6101cf366004611db4565b6001600160a01b03166000908152606d602052604090205490565b61015b6101f8366004611e93565b6105ba565b6101ac6106c7565b61015b61094d565b61015b610a55565b61015b610223366004611db4565b610ae1565b6101ac61023636600461202f565b610b94565b6101ac6102493660046120a5565b610ce5565b610256610dc9565b604051610165929190612109565b61015b610e8c565b61025661027a366004611db4565b610f54565b6101ac61028d366004611db4565b611028565b61015b606e5481565b6001600160a01b0381166000908152606f60209081526040808320815181546060948102820185018452928101838152610375949193849284919084018282801561030f57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102f1575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561036757602002820191906000526020600020905b815481526020019060010190808311610353575b5050505050815250506110b2565b92915050565b606754610100900460ff161580801561039b5750606754600160ff909116105b806103b55750303b1580156103b5575060675460ff166001145b61042c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6067805460ff19166001179055801561044f576067805461ff0019166101001790555b61045a83868661110b565b606780547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b038b81169190910291909117909155606880546001600160a01b03199081168a841617909155606980548216898416179055606a80549091169184169190911790558015610513576067805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610525611191565b6001600160a01b0382166000908152606d60205260409020546105499082906121a3565b6001600160a01b0383166000908152606d6020526040902055606e546105709082906121a3565b606e55604080516001600160a01b0384168152602081018390527fa74e3bb5fe32faeb10bf47b068532ba66618c6619fd483e73e183f2dca7648fe91015b60405180910390a15050565b6001600160a01b0382166000908152606f602090815260408083208054825181850281018501909352808352849383018282801561062157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610603575b505083519394506000925050505b818110156106bb57846001600160a01b0316838281518110610653576106536121b6565b60200260200101516001600160a01b0316036106ab576001600160a01b0386166000908152606f60205260409020600101805482908110610696576106966121b6565b90600052602060002001549350505050610375565b6106b4816121cc565b905061062f565b50600095945050505050565b336000908152606f6020908152604080832081518154606094810282018501845292810183815290939192849284919084018282801561073057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610712575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561078857602002820191906000526020600020905b815481526020019060010190808311610774575b505050505081525050905061079c816110b2565b15610941576040805160008082526020808301808552338352606f90915292902090516107c99290611cea565b506040805160008082526020808301808552338352606f90915292902090516107f89260019092019190611d4f565b5060405133907f6b2ad5b68fc200b778014cdb888224cf17eb4dde84391e0664599b723958b84690600090a260408051606b80546060602082028401810185529383018181526108ef948492849184018282801561087f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610861575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156108d757602002820191906000526020600020905b8154815260200190600101908083116108c3575b505050505081525050826000015183602001516111ad565b805161090391606c91602090910190611d4f565b506040513381527f7636482499a16d29b05db7b6a6f35d00f2df69ce1104c82d1f6d288e68ef15eb9060200160405180910390a16109413382611394565b61094a3361156a565b50565b600080603360009054906101000a90046001600160a01b03166001600160a01b03166381b7f1bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c791906121e5565b90506000603460009054906101000a90046001600160a01b03166001600160a01b03166381b7f1bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4291906121e5565b9050610a4e81836121a3565b9250505090565b603354604080517f651340c400000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163651340c49160048083019260209291908290030181865afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc91906121e5565b905090565b600080546040517fb31610db0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301528392169063b31610db90602401602060405180830381865afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6991906121e5565b9050606b6001018181548110610b8157610b816121b6565b9060005260206000200154915050919050565b610b9c61160d565b600080546001600160a01b038581168352606f60209081526040938490208451808601865287815291820186905293517f5799186700000000000000000000000000000000000000000000000000000000815273__$dd008e7fdb676c23adfd59cbc2bd3a4768$__94635799186794610c1b9416929091600401612281565b600060405180830381865af4158015610c38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c60919081019061239d565b6001600160a01b0384166000908152606f60209081526040909120825180519192610c9092849290910190611cea565b506020828101518051610ca99260018501920190611d4f565b50506040516001600160a01b03851691507f6b2ad5b68fc200b778014cdb888224cf17eb4dde84391e0664599b723958b84690600090a2505050565b610ced611640565b60408051606b8054606060208202840181018552938301818152610db09484928491840182828015610d4857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d2a575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610da057602002820191906000526020600020905b815481526020019060010190808311610d8c575b505050505081525050838361165a565b8051610dc491606c91602090910190611d4f565b505050565b606080606b600001606b60010181805480602002602001604051908101604052809291908181526020018280548015610e2b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e0d575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610e7d57602002820191906000526020600020905b815481526020019060010190808311610e69575b50505050509050915091509091565b60408051606b8054606060208202840181018552938301818152600094610adc949392849291849190840182828015610eee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ed0575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f4657602002820191906000526020600020905b815481526020019060010190808311610f32575b505050505081525050611832565b6001600160a01b0381166000908152606f60209081526040918290208054835181840281018401909452808452606093849360018401928491830182828015610fc657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fa8575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561101857602002820191906000526020600020905b815481526020019060010190808311611004575b5050505050905091509150915091565b6110306118c4565b606b805460018082019092557fbd43cb8ece8cd1863bcd6082d65c5b0d25665b1ce17980f0da43c0ed545f98b40180546001600160a01b0319166001600160a01b039390931692909217909155606c8054918201815560009081527f2b4a51ab505fc96a0952efda2ba61bcd3078d4c02c39a186ec16f21883fbe01690910155565b805151600090815b8181101561110157836020015181815181106110d8576110d86121b6565b60200260200101516000146110f1575060019392505050565b6110fa816121cc565b90506110ba565b5060009392505050565b6111148361191e565b6001600160a01b03821661113b57604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b03811661116257604051639fabe1c160e01b815260040160405180910390fd5b603380546001600160a01b039384166001600160a01b0319918216179091556034805492909316911617905550565b6069546001600160a01b031633146111ab576111ab6119aa565b565b606082516000036111c35750602083015161138d565b602084015151835160008267ffffffffffffffff8111156111e6576111e6611ecc565b60405190808252806020026020018201604052801561120f578160200160208202803683370190505b5090506000805b838210801561122457508481105b1561133257885180518290811061123d5761123d6121b6565b60200260200101516001600160a01b0316888381518110611260576112606121b6565b60200260200101516001600160a01b0316036112e557868281518110611288576112886121b6565b6020026020010151896020015182815181106112a6576112a66121b6565b60200260200101516112b8919061248b565b8382815181106112ca576112ca6121b6565b60209081029190910101526112de826121cc565b9150611322565b886020015181815181106112fb576112fb6121b6565b6020026020010151838281518110611315576113156121b6565b6020026020010181815250505b61132b816121cc565b9050611216565b848110156113855788602001518181518110611350576113506121b6565b602002602001015183828151811061136a5761136a6121b6565b602090810291909101015261137e816121cc565b9050611332565b509093505050505b9392505050565b80515160005b81811015611564576000836000015182815181106113ba576113ba6121b6565b60209081029190910101516000546040517f229dfaa70000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063229dfaa790602401602060405180830381865afa15801561142a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144e919061249e565b1561151857806001600160a01b031663b460af9485602001518481518110611478576114786121b6565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260048101919091526001600160a01b03881660248201523060448201526064016020604051808303816000875af11580156114ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151291906121e5565b50611553565b6115538585602001518481518110611532576115326121b6565b6020026020010151836001600160a01b03166119f29092919063ffffffff16565b5061155d816121cc565b905061139a565b50505050565b6001600160a01b0381166000908152606d60205260409020548015611609576001600160a01b0382166000908152606d6020526040812055606e546115b090829061248b565b606e55606a546115ca906001600160a01b031683836119f2565b604080516001600160a01b0384168152602081018390527f75674e3575df13b4531be11cb465153d0607ae0fe1ffcbe494de816a8546ba6491016105ae565b5050565b6068546001600160a01b0316331480159061163357506069546001600160a01b03163314155b156111ab576111ab6119aa565b6033546001600160a01b031633146111ab576111ab6119aa565b606081516000036116705750602083015161138d565b602084015151835160008267ffffffffffffffff81111561169357611693611ecc565b6040519080825280602002602001820160405280156116bc578160200160208202803683370190505b5090506000805b83821080156116d157508481105b156117df5788518051829081106116ea576116ea6121b6565b60200260200101516001600160a01b031688838151811061170d5761170d6121b6565b60200260200101516001600160a01b03160361179257868281518110611735576117356121b6565b602002602001015189602001518281518110611753576117536121b6565b602002602001015161176591906121a3565b838281518110611777576117776121b6565b602090810291909101015261178b826121cc565b91506117cf565b886020015181815181106117a8576117a86121b6565b60200260200101518382815181106117c2576117c26121b6565b6020026020010181815250505b6117d8816121cc565b90506116c3565b8481101561138557886020015181815181106117fd576117fd6121b6565b6020026020010151838281518110611817576118176121b6565b602090810291909101015261182b816121cc565b90506117df565b60008054825160208401516040517f97a4b9f70000000000000000000000000000000000000000000000000000000081526001600160a01b03909316926397a4b9f792611883929091600401612109565b602060405180830381865afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037591906121e5565b6000546001600160a01b031633146111ab5760405162461bcd60e51b815260206004820152600660248201527f5746432d504200000000000000000000000000000000000000000000000000006044820152606401610423565b6000546001600160a01b031615611961576040517f7f820f0e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661198857604051639fabe1c160e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60405162461bcd60e51b815260206004820152600760248201527f5746432d435350000000000000000000000000000000000000000000000000006044820152606401610423565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610dc492869291600091611ab0918516908490611b43565b9050805160001480611ad1575080806020019051810190611ad1919061249e565b610dc45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610423565b6060611b528484600085611b5a565b949350505050565b606082471015611bd25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610423565b600080866001600160a01b03168587604051611bee91906124e4565b60006040518083038185875af1925050503d8060008114611c2b576040519150601f19603f3d011682016040523d82523d6000602084013e611c30565b606091505b5091509150611c4187838387611c4c565b979650505050505050565b60608315611cbb578251600003611cb4576001600160a01b0385163b611cb45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610423565b5081611b52565b611b528383815115611cd05781518083602001fd5b8060405162461bcd60e51b81526004016104239190612500565b828054828255906000526020600020908101928215611d3f579160200282015b82811115611d3f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611d0a565b50611d4b929150611d8a565b5090565b828054828255906000526020600020908101928215611d3f579160200282015b82811115611d3f578251825591602001919060010190611d6f565b5b80821115611d4b5760008155600101611d8b565b6001600160a01b038116811461094a57600080fd5b600060208284031215611dc657600080fd5b813561138d81611d9f565b600080600080600080600060e0888a031215611dec57600080fd5b8735611df781611d9f565b96506020880135611e0781611d9f565b95506040880135611e1781611d9f565b94506060880135611e2781611d9f565b93506080880135611e3781611d9f565b925060a0880135611e4781611d9f565b915060c0880135611e5781611d9f565b8091505092959891949750929550565b60008060408385031215611e7a57600080fd5b8235611e8581611d9f565b946020939093013593505050565b60008060408385031215611ea657600080fd5b8235611eb181611d9f565b91506020830135611ec181611d9f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611f0557611f05611ecc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f3457611f34611ecc565b604052919050565b600067ffffffffffffffff821115611f5657611f56611ecc565b5060051b60200190565b600082601f830112611f7157600080fd5b81356020611f86611f8183611f3c565b611f0b565b82815260059290921b84018101918181019086841115611fa557600080fd5b8286015b84811015611fc9578035611fbc81611d9f565b8352918301918301611fa9565b509695505050505050565b600082601f830112611fe557600080fd5b81356020611ff5611f8183611f3c565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611fc95780358352918301918301612018565b60008060006060848603121561204457600080fd5b833561204f81611d9f565b9250602084013567ffffffffffffffff8082111561206c57600080fd5b61207887838801611f60565b9350604086013591508082111561208e57600080fd5b5061209b86828701611fd4565b9150509250925092565b600080604083850312156120b857600080fd5b823567ffffffffffffffff808211156120d057600080fd5b6120dc86838701611f60565b935060208501359150808211156120f257600080fd5b506120ff85828601611fd4565b9150509250929050565b604080825283519082018190526000906020906060840190828701845b8281101561214b5781516001600160a01b031684529284019290840190600101612126565b5050508381038285015284518082528583019183019060005b8181101561218057835183529284019291840191600101612164565b5090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103755761037561218d565b634e487b7160e01b600052603260045260246000fd5b6000600182016121de576121de61218d565b5060010190565b6000602082840312156121f757600080fd5b5051919050565b805160408084528151908401819052600091602091908201906060860190845b818110156122435783516001600160a01b03168352928401929184019160010161221e565b50508483015186820387850152805180835290840192506000918401905b80831015611fc95783518252928401926001929092019190840190612261565b60006001600160a01b038086168352602060608185015260a084016040606086015280875480835260c08701915060009250888352838320835b828110156122d95781548716845292850192600191820191016122bb565b50505060019350838801605f19878303016080880152818154808452858401915082855285852093505b808510156123205783548252938601939286019290850190612303565b508781036040890152612333818a6121fe565b9b9a5050505050505050505050565b600082601f83011261235357600080fd5b81516020612363611f8183611f3c565b82815260059290921b8401810191818101908684111561238257600080fd5b8286015b84811015611fc95780518352918301918301612386565b600060208083850312156123b057600080fd5b825167ffffffffffffffff808211156123c857600080fd5b90840190604082870312156123dc57600080fd5b6123e4611ee2565b8251828111156123f357600080fd5b8301601f8101881361240457600080fd5b8051612412611f8182611f3c565b81815260059190911b8201860190868101908a83111561243157600080fd5b928701925b8284101561245857835161244981611d9f565b82529287019290870190612436565b8452505050828401518281111561246e57600080fd5b61247a88828601612342565b948201949094529695505050505050565b818103818111156103755761037561218d565b6000602082840312156124b057600080fd5b8151801515811461138d57600080fd5b60005b838110156124db5781810151838201526020016124c3565b50506000910152565b600082516124f68184602087016124c0565b9190910192915050565b602081526000825180602084015261251f8160408501602087016124c0565b601f01601f1916919091016040019291505056fea26469706673582212209a93eac358ef4a031a9dc747379694cd47551ba6a7c3fe100bd6481c6455615164736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c8063887105d3116100b2578063c6ba093611610081578063e4e7861411610066578063e4e786141461026c578063ec0d5e0c1461027f578063f75927841461029257600080fd5b8063c6ba09361461024e578063dd33cf031461026457600080fd5b8063887105d31461020d5780639b56d6c9146102155780639efc9e2014610228578063a7a24edd1461023b57600080fd5b8063524a91e41161010957806361721554116100ee57806361721554146101ea5780636f0b0c1c146101fd578063795d26c31461020557600080fd5b8063524a91e4146101ae5780635ecbb1b1146101c157600080fd5b8063139728d11461013b57806328ad1fcc1461016e5780632efac5b0146101765780633587647614610199575b600080fd5b61015b610149366004611db4565b606d6020526000908152604090205481565b6040519081526020015b60405180910390f35b606e5461015b565b610189610184366004611db4565b61029b565b6040519015158152602001610165565b6101ac6101a7366004611dd1565b61037b565b005b6101ac6101bc366004611e67565b61051d565b61015b6101cf366004611db4565b6001600160a01b03166000908152606d602052604090205490565b61015b6101f8366004611e93565b6105ba565b6101ac6106c7565b61015b61094d565b61015b610a55565b61015b610223366004611db4565b610ae1565b6101ac61023636600461202f565b610b94565b6101ac6102493660046120a5565b610ce5565b610256610dc9565b604051610165929190612109565b61015b610e8c565b61025661027a366004611db4565b610f54565b6101ac61028d366004611db4565b611028565b61015b606e5481565b6001600160a01b0381166000908152606f60209081526040808320815181546060948102820185018452928101838152610375949193849284919084018282801561030f57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102f1575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561036757602002820191906000526020600020905b815481526020019060010190808311610353575b5050505050815250506110b2565b92915050565b606754610100900460ff161580801561039b5750606754600160ff909116105b806103b55750303b1580156103b5575060675460ff166001145b61042c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b6067805460ff19166001179055801561044f576067805461ff0019166101001790555b61045a83868661110b565b606780547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b038b81169190910291909117909155606880546001600160a01b03199081168a841617909155606980548216898416179055606a80549091169184169190911790558015610513576067805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610525611191565b6001600160a01b0382166000908152606d60205260409020546105499082906121a3565b6001600160a01b0383166000908152606d6020526040902055606e546105709082906121a3565b606e55604080516001600160a01b0384168152602081018390527fa74e3bb5fe32faeb10bf47b068532ba66618c6619fd483e73e183f2dca7648fe91015b60405180910390a15050565b6001600160a01b0382166000908152606f602090815260408083208054825181850281018501909352808352849383018282801561062157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610603575b505083519394506000925050505b818110156106bb57846001600160a01b0316838281518110610653576106536121b6565b60200260200101516001600160a01b0316036106ab576001600160a01b0386166000908152606f60205260409020600101805482908110610696576106966121b6565b90600052602060002001549350505050610375565b6106b4816121cc565b905061062f565b50600095945050505050565b336000908152606f6020908152604080832081518154606094810282018501845292810183815290939192849284919084018282801561073057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610712575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561078857602002820191906000526020600020905b815481526020019060010190808311610774575b505050505081525050905061079c816110b2565b15610941576040805160008082526020808301808552338352606f90915292902090516107c99290611cea565b506040805160008082526020808301808552338352606f90915292902090516107f89260019092019190611d4f565b5060405133907f6b2ad5b68fc200b778014cdb888224cf17eb4dde84391e0664599b723958b84690600090a260408051606b80546060602082028401810185529383018181526108ef948492849184018282801561087f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610861575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156108d757602002820191906000526020600020905b8154815260200190600101908083116108c3575b505050505081525050826000015183602001516111ad565b805161090391606c91602090910190611d4f565b506040513381527f7636482499a16d29b05db7b6a6f35d00f2df69ce1104c82d1f6d288e68ef15eb9060200160405180910390a16109413382611394565b61094a3361156a565b50565b600080603360009054906101000a90046001600160a01b03166001600160a01b03166381b7f1bf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c791906121e5565b90506000603460009054906101000a90046001600160a01b03166001600160a01b03166381b7f1bf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4291906121e5565b9050610a4e81836121a3565b9250505090565b603354604080517f651340c400000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163651340c49160048083019260209291908290030181865afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc91906121e5565b905090565b600080546040517fb31610db0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301528392169063b31610db90602401602060405180830381865afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6991906121e5565b9050606b6001018181548110610b8157610b816121b6565b9060005260206000200154915050919050565b610b9c61160d565b600080546001600160a01b038581168352606f60209081526040938490208451808601865287815291820186905293517f5799186700000000000000000000000000000000000000000000000000000000815273__$dd008e7fdb676c23adfd59cbc2bd3a4768$__94635799186794610c1b9416929091600401612281565b600060405180830381865af4158015610c38573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c60919081019061239d565b6001600160a01b0384166000908152606f60209081526040909120825180519192610c9092849290910190611cea565b506020828101518051610ca99260018501920190611d4f565b50506040516001600160a01b03851691507f6b2ad5b68fc200b778014cdb888224cf17eb4dde84391e0664599b723958b84690600090a2505050565b610ced611640565b60408051606b8054606060208202840181018552938301818152610db09484928491840182828015610d4857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d2a575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610da057602002820191906000526020600020905b815481526020019060010190808311610d8c575b505050505081525050838361165a565b8051610dc491606c91602090910190611d4f565b505050565b606080606b600001606b60010181805480602002602001604051908101604052809291908181526020018280548015610e2b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e0d575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610e7d57602002820191906000526020600020905b815481526020019060010190808311610e69575b50505050509050915091509091565b60408051606b8054606060208202840181018552938301818152600094610adc949392849291849190840182828015610eee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ed0575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610f4657602002820191906000526020600020905b815481526020019060010190808311610f32575b505050505081525050611832565b6001600160a01b0381166000908152606f60209081526040918290208054835181840281018401909452808452606093849360018401928491830182828015610fc657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fa8575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561101857602002820191906000526020600020905b815481526020019060010190808311611004575b5050505050905091509150915091565b6110306118c4565b606b805460018082019092557fbd43cb8ece8cd1863bcd6082d65c5b0d25665b1ce17980f0da43c0ed545f98b40180546001600160a01b0319166001600160a01b039390931692909217909155606c8054918201815560009081527f2b4a51ab505fc96a0952efda2ba61bcd3078d4c02c39a186ec16f21883fbe01690910155565b805151600090815b8181101561110157836020015181815181106110d8576110d86121b6565b60200260200101516000146110f1575060019392505050565b6110fa816121cc565b90506110ba565b5060009392505050565b6111148361191e565b6001600160a01b03821661113b57604051639fabe1c160e01b815260040160405180910390fd5b6001600160a01b03811661116257604051639fabe1c160e01b815260040160405180910390fd5b603380546001600160a01b039384166001600160a01b0319918216179091556034805492909316911617905550565b6069546001600160a01b031633146111ab576111ab6119aa565b565b606082516000036111c35750602083015161138d565b602084015151835160008267ffffffffffffffff8111156111e6576111e6611ecc565b60405190808252806020026020018201604052801561120f578160200160208202803683370190505b5090506000805b838210801561122457508481105b1561133257885180518290811061123d5761123d6121b6565b60200260200101516001600160a01b0316888381518110611260576112606121b6565b60200260200101516001600160a01b0316036112e557868281518110611288576112886121b6565b6020026020010151896020015182815181106112a6576112a66121b6565b60200260200101516112b8919061248b565b8382815181106112ca576112ca6121b6565b60209081029190910101526112de826121cc565b9150611322565b886020015181815181106112fb576112fb6121b6565b6020026020010151838281518110611315576113156121b6565b6020026020010181815250505b61132b816121cc565b9050611216565b848110156113855788602001518181518110611350576113506121b6565b602002602001015183828151811061136a5761136a6121b6565b602090810291909101015261137e816121cc565b9050611332565b509093505050505b9392505050565b80515160005b81811015611564576000836000015182815181106113ba576113ba6121b6565b60209081029190910101516000546040517f229dfaa70000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063229dfaa790602401602060405180830381865afa15801561142a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144e919061249e565b1561151857806001600160a01b031663b460af9485602001518481518110611478576114786121b6565b60209081029190910101516040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260048101919091526001600160a01b03881660248201523060448201526064016020604051808303816000875af11580156114ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151291906121e5565b50611553565b6115538585602001518481518110611532576115326121b6565b6020026020010151836001600160a01b03166119f29092919063ffffffff16565b5061155d816121cc565b905061139a565b50505050565b6001600160a01b0381166000908152606d60205260409020548015611609576001600160a01b0382166000908152606d6020526040812055606e546115b090829061248b565b606e55606a546115ca906001600160a01b031683836119f2565b604080516001600160a01b0384168152602081018390527f75674e3575df13b4531be11cb465153d0607ae0fe1ffcbe494de816a8546ba6491016105ae565b5050565b6068546001600160a01b0316331480159061163357506069546001600160a01b03163314155b156111ab576111ab6119aa565b6033546001600160a01b031633146111ab576111ab6119aa565b606081516000036116705750602083015161138d565b602084015151835160008267ffffffffffffffff81111561169357611693611ecc565b6040519080825280602002602001820160405280156116bc578160200160208202803683370190505b5090506000805b83821080156116d157508481105b156117df5788518051829081106116ea576116ea6121b6565b60200260200101516001600160a01b031688838151811061170d5761170d6121b6565b60200260200101516001600160a01b03160361179257868281518110611735576117356121b6565b602002602001015189602001518281518110611753576117536121b6565b602002602001015161176591906121a3565b838281518110611777576117776121b6565b602090810291909101015261178b826121cc565b91506117cf565b886020015181815181106117a8576117a86121b6565b60200260200101518382815181106117c2576117c26121b6565b6020026020010181815250505b6117d8816121cc565b90506116c3565b8481101561138557886020015181815181106117fd576117fd6121b6565b6020026020010151838281518110611817576118176121b6565b602090810291909101015261182b816121cc565b90506117df565b60008054825160208401516040517f97a4b9f70000000000000000000000000000000000000000000000000000000081526001600160a01b03909316926397a4b9f792611883929091600401612109565b602060405180830381865afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037591906121e5565b6000546001600160a01b031633146111ab5760405162461bcd60e51b815260206004820152600660248201527f5746432d504200000000000000000000000000000000000000000000000000006044820152606401610423565b6000546001600160a01b031615611961576040517f7f820f0e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661198857604051639fabe1c160e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60405162461bcd60e51b815260206004820152600760248201527f5746432d435350000000000000000000000000000000000000000000000000006044820152606401610423565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610dc492869291600091611ab0918516908490611b43565b9050805160001480611ad1575080806020019051810190611ad1919061249e565b610dc45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610423565b6060611b528484600085611b5a565b949350505050565b606082471015611bd25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610423565b600080866001600160a01b03168587604051611bee91906124e4565b60006040518083038185875af1925050503d8060008114611c2b576040519150601f19603f3d011682016040523d82523d6000602084013e611c30565b606091505b5091509150611c4187838387611c4c565b979650505050505050565b60608315611cbb578251600003611cb4576001600160a01b0385163b611cb45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610423565b5081611b52565b611b528383815115611cd05781518083602001fd5b8060405162461bcd60e51b81526004016104239190612500565b828054828255906000526020600020908101928215611d3f579160200282015b82811115611d3f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611d0a565b50611d4b929150611d8a565b5090565b828054828255906000526020600020908101928215611d3f579160200282015b82811115611d3f578251825591602001919060010190611d6f565b5b80821115611d4b5760008155600101611d8b565b6001600160a01b038116811461094a57600080fd5b600060208284031215611dc657600080fd5b813561138d81611d9f565b600080600080600080600060e0888a031215611dec57600080fd5b8735611df781611d9f565b96506020880135611e0781611d9f565b95506040880135611e1781611d9f565b94506060880135611e2781611d9f565b93506080880135611e3781611d9f565b925060a0880135611e4781611d9f565b915060c0880135611e5781611d9f565b8091505092959891949750929550565b60008060408385031215611e7a57600080fd5b8235611e8581611d9f565b946020939093013593505050565b60008060408385031215611ea657600080fd5b8235611eb181611d9f565b91506020830135611ec181611d9f565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611f0557611f05611ecc565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611f3457611f34611ecc565b604052919050565b600067ffffffffffffffff821115611f5657611f56611ecc565b5060051b60200190565b600082601f830112611f7157600080fd5b81356020611f86611f8183611f3c565b611f0b565b82815260059290921b84018101918181019086841115611fa557600080fd5b8286015b84811015611fc9578035611fbc81611d9f565b8352918301918301611fa9565b509695505050505050565b600082601f830112611fe557600080fd5b81356020611ff5611f8183611f3c565b82815260059290921b8401810191818101908684111561201457600080fd5b8286015b84811015611fc95780358352918301918301612018565b60008060006060848603121561204457600080fd5b833561204f81611d9f565b9250602084013567ffffffffffffffff8082111561206c57600080fd5b61207887838801611f60565b9350604086013591508082111561208e57600080fd5b5061209b86828701611fd4565b9150509250925092565b600080604083850312156120b857600080fd5b823567ffffffffffffffff808211156120d057600080fd5b6120dc86838701611f60565b935060208501359150808211156120f257600080fd5b506120ff85828601611fd4565b9150509250929050565b604080825283519082018190526000906020906060840190828701845b8281101561214b5781516001600160a01b031684529284019290840190600101612126565b5050508381038285015284518082528583019183019060005b8181101561218057835183529284019291840191600101612164565b5090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103755761037561218d565b634e487b7160e01b600052603260045260246000fd5b6000600182016121de576121de61218d565b5060010190565b6000602082840312156121f757600080fd5b5051919050565b805160408084528151908401819052600091602091908201906060860190845b818110156122435783516001600160a01b03168352928401929184019160010161221e565b50508483015186820387850152805180835290840192506000918401905b80831015611fc95783518252928401926001929092019190840190612261565b60006001600160a01b038086168352602060608185015260a084016040606086015280875480835260c08701915060009250888352838320835b828110156122d95781548716845292850192600191820191016122bb565b50505060019350838801605f19878303016080880152818154808452858401915082855285852093505b808510156123205783548252938601939286019290850190612303565b508781036040890152612333818a6121fe565b9b9a5050505050505050505050565b600082601f83011261235357600080fd5b81516020612363611f8183611f3c565b82815260059290921b8401810191818101908684111561238257600080fd5b8286015b84811015611fc95780518352918301918301612386565b600060208083850312156123b057600080fd5b825167ffffffffffffffff808211156123c857600080fd5b90840190604082870312156123dc57600080fd5b6123e4611ee2565b8251828111156123f357600080fd5b8301601f8101881361240457600080fd5b8051612412611f8182611f3c565b81815260059190911b8201860190868101908a83111561243157600080fd5b928701925b8284101561245857835161244981611d9f565b82529287019290870190612436565b8452505050828401518281111561246e57600080fd5b61247a88828601612342565b948201949094529695505050505050565b818103818111156103755761037561218d565b6000602082840312156124b057600080fd5b8151801515811461138d57600080fd5b60005b838110156124db5781810151838201526020016124c3565b50506000910152565b600082516124f68184602087016124c0565b9190910192915050565b602081526000825180602084015261251f8160408501602087016124c0565b601f01601f1916919091016040019291505056fea26469706673582212209a93eac358ef4a031a9dc747379694cd47551ba6a7c3fe100bd6481c6455615164736f6c63430008130033",
  "linkReferences": {
    "contracts/Dependencies_v0_8/SumCollateralsLib.sol": {
      "SumCollateralsLib": [
        {
          "length": 20,
          "start": 3089
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/Dependencies_v0_8/SumCollateralsLib.sol": {
      "SumCollateralsLib": [
        {
          "length": 20,
          "start": 3057
        }
      ]
    }
  }
}
