{"abi":[{"type":"function","name":"CANCEL_AUTHORIZATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PERMIT_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIVE_WITH_AUTHORIZATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TRANSFER_WITH_AUTHORIZATION_TYPEHASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"authorizationState","inputs":[{"name":"authorizer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blacklist","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"blacklister","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cancelAuthorization","inputs":[{"name":"authorizer","type":"address","internalType":"address"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configureMinter","inputs":[{"name":"minter","type":"address","internalType":"address"},{"name":"minterAllowedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"currency","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"decrement","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"increment","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"tokenName","type":"string","internalType":"string"},{"name":"tokenSymbol","type":"string","internalType":"string"},{"name":"tokenCurrency","type":"string","internalType":"string"},{"name":"tokenDecimals","type":"uint8","internalType":"uint8"},{"name":"newMasterMinter","type":"address","internalType":"address"},{"name":"newPauser","type":"address","internalType":"address"},{"name":"newBlacklister","type":"address","internalType":"address"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeV2","inputs":[{"name":"newName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeV2_1","inputs":[{"name":"lostAndFound","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBlacklisted","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMinter","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"masterMinter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"minterAllowance","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pauser","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"receiveWithAuthorization","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"validAfter","type":"uint256","internalType":"uint256"},{"name":"validBefore","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMinter","inputs":[{"name":"minter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"rescueERC20","inputs":[{"name":"tokenContract","type":"address","internalType":"contract IERC20"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rescuer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferWithAuthorization","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"validAfter","type":"uint256","internalType":"uint256"},{"name":"validBefore","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"bytes32","internalType":"bytes32"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unBlacklist","inputs":[{"name":"_account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBlacklister","inputs":[{"name":"_newBlacklister","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateMasterMinter","inputs":[{"name":"_newMasterMinter","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePauser","inputs":[{"name":"_newPauser","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRescuer","inputs":[{"name":"newRescuer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorizationCanceled","inputs":[{"name":"authorizer","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AuthorizationUsed","inputs":[{"name":"authorizer","type":"address","indexed":true,"internalType":"address"},{"name":"nonce","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Blacklisted","inputs":[{"name":"_account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BlacklisterChanged","inputs":[{"name":"newBlacklister","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"burner","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MasterMinterChanged","inputs":[{"name":"newMasterMinter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"minter","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinterConfigured","inputs":[{"name":"minter","type":"address","indexed":true,"internalType":"address"},{"name":"minterAllowedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinterRemoved","inputs":[{"name":"oldMinter","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":false,"internalType":"address"},{"name":"newOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Pause","inputs":[],"anonymous":false},{"type":"event","name":"PauserChanged","inputs":[{"name":"newAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RescuerChanged","inputs":[{"name":"newRescuer","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"UnBlacklisted","inputs":[{"name":"_account","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpause","inputs":[],"anonymous":false}],"bytecode":{"object":"0x60806040526001805460ff60a01b191690556000600b553480156200002357600080fd5b506200002f3362000035565b62000057565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6151bb80620000676000396000f3fe608060405234801561001057600080fd5b50600436106103365760003560e01c80637f2eecc3116101b2578063b2118a8d116100f9578063e3ee160e116100a2578063ef55bec61161007c578063ef55bec614610cc1578063f2fde38b14610d2d578063f9f92be414610d60578063fe575a8714610d9357610336565b8063e3ee160e14610c14578063e5a6b10f14610c80578063e94a010214610c8857610336565b8063d608ea64116100d3578063d608ea6414610b61578063d916948714610bd1578063dd62ed3e14610bd957610336565b8063b2118a8d14610ab8578063bd10243014610afb578063d505accf14610b0357610336565b8063a0cc6a681161015b578063aa20e1e411610135578063aa20e1e414610a1f578063aa271e1a14610a52578063ad38bf2214610a8557610336565b8063a0cc6a68146109a5578063a457c2d7146109ad578063a9059cbb146109e657610336565b80638da5cb5b1161018c5780638da5cb5b1461098d57806395d89b41146109955780639fd0506d1461099d57610336565b80637f2eecc31461094a5780638456cb59146109525780638a6db9c31461095a57610336565b80633644e515116102815780634e44d9561161022a5780635a049a70116102045780635a049a701461088e5780635c975abb146108dc57806370a08231146108e45780637ecebe001461091757610336565b80634e44d9561461081a57806354fd4d5014610853578063554bab3c1461085b57610336565b80633f4ba83a1161025b5780633f4ba83a146107bc57806340c10f19146107c457806342966c68146107fd57610336565b80633644e5151461077357806338a631831461077b578063395093511461078357610336565b80632fc81e09116102e3578063313ce567116102bd578063313ce567146105385780633357162b1461055657806335d99f351461074257610336565b80632fc81e09146104ca5780633092afd5146104fd57806330adf81f1461053057610336565b80631a895266116103145780631a8952661461041f57806323b872dd146104545780632ab600451461049757610336565b806306fdde031461033b578063095ea7b3146103b857806318160ddd14610405575b600080fd5b610343610dc6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037d578181015183820152602001610365565b50505050905090810190601f1680156103aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f1600480360360408110156103ce57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e72565b604080519115158252519081900360200190f35b61040d610fd5565b60408051918252519081900360200190f35b6104526004803603602081101561043557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fdb565b005b6103f16004803603606081101561046a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611098565b610452600480360360208110156104ad57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611353565b610452600480360360208110156104e057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114b4565b6103f16004803603602081101561051357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661151c565b61040d611615565b610540611639565b6040805160ff9092168252519081900360200190f35b610452600480360361010081101561056d57600080fd5b81019060208101813564010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561060f57600080fd5b82018360208201111561062157600080fd5b8035906020019184600183028401116401000000008311171561064357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561069657600080fd5b8201836020820111156106a857600080fd5b803590602001918460018302840111640100000000831117156106ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff90811691604081013582169160608201358116916080013516611642565b61074a611984565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040d6119a0565b61074a6119af565b6103f16004803603604081101561079957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356119cb565b610452611b23565b6103f1600480360360408110156107da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611be6565b6104526004803603602081101561081357600080fd5b5035611fb7565b6103f16004803603604081101561083057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612259565b6103436123ec565b6104526004803603602081101561087157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612423565b610452600480360360a08110156108a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff604082013516906060810135906080013561258a565b6103f1612628565b61040d600480360360208110156108fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612649565b61040d6004803603602081101561092d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661265a565b61040d612682565b6104526126a6565b61040d6004803603602081101561097057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612780565b61074a6127a8565b6103436127c4565b61074a61283d565b61040d612859565b6103f1600480360360408110156109c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561287d565b6103f1600480360360408110156109fc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356129d5565b61045260048036036020811015610a3557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612b2d565b6103f160048036036020811015610a6857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612c94565b61045260048036036020811015610a9b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612cbf565b61045260048036036060811015610ace57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135612e26565b61074a612ebc565b610452600480360360e0811015610b1957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135612ed8565b61045260048036036020811015610b7757600080fd5b810190602081018135640100000000811115610b9257600080fd5b820183602082011115610ba457600080fd5b80359060200191846001830284011164010000000083111715610bc657600080fd5b50909250905061303c565b61040d613125565b61040d60048036036040811015610bef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613149565b6104526004803603610120811015610c2b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613181565b6103436132e9565b6103f160048036036040811015610c9e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135613362565b6104526004803603610120811015610cd857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e081013590610100013561339a565b61045260048036036020811015610d4357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166134f5565b61045260048036036020811015610d7657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613648565b6103f160048036036020811015610da957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613705565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b820191906000526020600020905b815481529060010190602001808311610e4d57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610eff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610f098161370c565b15610f5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83610f698161370c565b15610fbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613737565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff16331461104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614e8a602c913960400191505060405180910390fd5b6110548161387e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff161561112557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3361112f8161370c565b15611185576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b8461118f8161370c565b156111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b846111ef8161370c565b15611245576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020548511156112ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614f506028913960400191505060405180910390fd5b6112d9878787613889565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546113149086613a54565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146113d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614de8602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60125460ff166001146114c657600080fd5b60006114d130613a9d565b905080156114e4576114e4308383613889565b6114ed30613ac5565b5050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179055565b60085460009073ffffffffffffffffffffffffffffffffffffffff16331461158f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614e616029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff16156116b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614fcb602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614efd602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831661178e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614dbf6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166117fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614f78602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611866576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806150b86028913960400191505060405180910390fd5b87516118799060049060208b0190614b95565b50865161188d9060059060208a0190614b95565b5085516118a1906007906020890190614b95565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff878116919091179092556001805482168684161790556002805490911691841691909117905561193b81613ad0565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60006119aa613b17565b905090565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff1615611a5857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33611a628161370c565b15611ab8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83611ac28161370c565b15611b18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613b1d565b60015473ffffffffffffffffffffffffffffffffffffffff163314611b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061506c6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611c7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614edc6021913960400191505060405180910390fd5b33611ce58161370c565b15611d3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83611d458161370c565b15611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614d546023913960400191505060405180910390fd5b60008411611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614e126029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061503e602e913960400191505060405180910390fd5b600b54611ed69086613b67565b600b55611ef586611ef087611eea83613a9d565b90613b67565b613bdb565b611eff8186613a54565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff161561204157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff166120a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614edc6021913960400191505060405180910390fd5b336120b38161370c565b15612109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b600061211433613a9d565b90506000831161216f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d2b6029913960400191505060405180910390fd5b828110156121c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614eb66026913960400191505060405180910390fd5b600b546121d59084613a54565b600b556121e633611ef08386613a54565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff16156122e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314612356576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614e616029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b60005473ffffffffffffffffffffffffffffffffffffffff1633146124a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612515576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614cd86028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff161561261457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6126218585858585613c04565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b600061265482613a9d565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff163314612716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061506c6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff161561290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336129148161370c565b1561296a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b836129748161370c565b156129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613c44565b60015460009074010000000000000000000000000000000000000000900460ff1615612a6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33612a6c8161370c565b15612ac2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83612acc8161370c565b15612b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613889565b60005473ffffffffffffffffffffffffffffffffffffffff163314612bb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612c1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614efd602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612d4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612db1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061510e6032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314612e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614f2c6024913960400191505060405180910390fd5b612eb773ffffffffffffffffffffffffffffffffffffffff84168383613ca0565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612f6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b86612f6c8161370c565b15612fc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b86612fcc8161370c565b15613022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b61303189898989898989613d2d565b505050505050505050565b60085474010000000000000000000000000000000000000000900460ff168015613069575060125460ff16155b61307257600080fd5b61307e60048383614c13565b506130f382828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f320000000000000000000000000000000000000000000000000000000000000060208201529150613d789050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561320b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b886132158161370c565b1561326b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b886132758161370c565b156132cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b6132dc8b8b8b8b8b8b8b8b8b613d8e565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff161561342457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b8861342e8161370c565b15613484576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b8861348e8161370c565b156134e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b6132dc8b8b8b8b8b8b8b8b8b613dd2565b60005473ffffffffffffffffffffffffffffffffffffffff16331461357b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166135e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614d776026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a161364581613ad0565b50565b60025473ffffffffffffffffffffffffffffffffffffffff1633146136b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614e8a602c913960400191505060405180910390fd5b6136c181613ac5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000612654825b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff83166137a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061501a6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661380f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614d9d6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b613645816000613e16565b73ffffffffffffffffffffffffffffffffffffffff83166138f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614ff56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614cb56023913960400191505060405180910390fd5b61396a83613a9d565b8111156139c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614e3b6026913960400191505060405180910390fd5b6139d983611ef0836139d387613a9d565b90613a54565b6139ea82611ef083611eea86613a9d565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000613a9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613e6c565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b613645816001613e16565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600f5490565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a6020908152604080832093861683529290522054612eb79084908490613b629085613b67565b613737565b600082820183811015613a9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b6126218585848487604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052613f1d565b612eb78383613b628460405180606001604052806025815260200161518a6025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190613e6c565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052612eb7908490614027565b613d6f87878787868689604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526140ff565b50505050505050565b600046613d868484836143c3565b949350505050565b61303189898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614437565b61303189898989898988888b604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526144ea565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008184841115613f15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eda578181015183820152602001613ec2565b50505050905090810190601f168015613f075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b613f2783836145f6565b613fa1837f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960001b8585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040528051906020012083614684565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260106020908152604080832086845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518492917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050565b6060614089826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166148029092919063ffffffff16565b805190915015612eb7578080602001905160208110156140a857600080fd5b5051612eb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061508e602a913960400191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82148061412d5750428210155b61419857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b60006142406141a5613b17565b73ffffffffffffffffffffffffffffffffffffffff80891660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e090920190528051910120614811565b9050734200000000000000000000000000000000000776636ccea6528783856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156142cd5781810151838201526020016142b5565b50505050905090810190601f1680156142fa5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561431957600080fd5b505af415801561432d573d6000803e3d6000fd5b505050506040513d602081101561434357600080fd5b50516143b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b6143bb868686613737565b505050505050565b8251602093840120825192840192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8187015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c09092019052805191012090565b6144438783868661484b565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206144d590889083614684565b6144df878361490b565b613d6f878787613889565b73ffffffffffffffffffffffffffffffffffffffff86163314614558576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614fa66025913960400191505060405180910390fd5b6145648783868661484b565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de860208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206144d590889083614684565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff1615614680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806150e0602e913960400191505060405180910390fd5b5050565b734200000000000000000000000000000000000776636ccea652846146b06146aa613b17565b86614811565b846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561471f578181015183820152602001614707565b50505050905090810190601f16801561474c5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561476b57600080fd5b505af415801561477f573d6000803e3d6000fd5b505050506040513d602081101561479557600080fd5b5051612eb757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6060613d868484600085614990565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b8142116148a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614d00602b913960400191505060405180910390fd5b8042106148fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151656025913960400191505060405180910390fd5b61490584846145f6565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b606061499b85614b5c565b614a0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310614a7057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614a33565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614ad2576040519150601f19603f3d011682016040523d82523d6000602084013e614ad7565b606091505b50915091508115614aeb579150613d869050565b805115614afb5780518082602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152865160248401528651879391928392604401919085019080838360008315613eda578181015183820152602001613ec2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590613d86575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614bd657805160ff1916838001178555614c03565b82800160010185558215614c03579182015b82811115614c03578251825591602001919060010190614be8565b50614c0f929150614c9f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614c72578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614c03565b82800160010185558215614c03579182015b82811115614c03578235825591602001919060010190614c84565b5b80821115614c0f5760008155600101614ca056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300060c000a","sourceMap":"867:758:31:-:0;;;2107:26:24;;;-1:-1:-1;;;;2107:26:24;;;2128:5;1710:33:22;;867:758:31;;;;;;;;;-1:-1:-1;2226:20:23;2235:10;2226:8;:20::i;:::-;867:758:31;;2496:79:23;2551:6;:17;;-1:-1:-1;;;;;;2551:17:23;-1:-1:-1;;;;;2551:17:23;;;;;;;;;;2496:79::o;867:758:31:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106103365760003560e01c80637f2eecc3116101b2578063b2118a8d116100f9578063e3ee160e116100a2578063ef55bec61161007c578063ef55bec614610cc1578063f2fde38b14610d2d578063f9f92be414610d60578063fe575a8714610d9357610336565b8063e3ee160e14610c14578063e5a6b10f14610c80578063e94a010214610c8857610336565b8063d608ea64116100d3578063d608ea6414610b61578063d916948714610bd1578063dd62ed3e14610bd957610336565b8063b2118a8d14610ab8578063bd10243014610afb578063d505accf14610b0357610336565b8063a0cc6a681161015b578063aa20e1e411610135578063aa20e1e414610a1f578063aa271e1a14610a52578063ad38bf2214610a8557610336565b8063a0cc6a68146109a5578063a457c2d7146109ad578063a9059cbb146109e657610336565b80638da5cb5b1161018c5780638da5cb5b1461098d57806395d89b41146109955780639fd0506d1461099d57610336565b80637f2eecc31461094a5780638456cb59146109525780638a6db9c31461095a57610336565b80633644e515116102815780634e44d9561161022a5780635a049a70116102045780635a049a701461088e5780635c975abb146108dc57806370a08231146108e45780637ecebe001461091757610336565b80634e44d9561461081a57806354fd4d5014610853578063554bab3c1461085b57610336565b80633f4ba83a1161025b5780633f4ba83a146107bc57806340c10f19146107c457806342966c68146107fd57610336565b80633644e5151461077357806338a631831461077b578063395093511461078357610336565b80632fc81e09116102e3578063313ce567116102bd578063313ce567146105385780633357162b1461055657806335d99f351461074257610336565b80632fc81e09146104ca5780633092afd5146104fd57806330adf81f1461053057610336565b80631a895266116103145780631a8952661461041f57806323b872dd146104545780632ab600451461049757610336565b806306fdde031461033b578063095ea7b3146103b857806318160ddd14610405575b600080fd5b610343610dc6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037d578181015183820152602001610365565b50505050905090810190601f1680156103aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103f1600480360360408110156103ce57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e72565b604080519115158252519081900360200190f35b61040d610fd5565b60408051918252519081900360200190f35b6104526004803603602081101561043557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fdb565b005b6103f16004803603606081101561046a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611098565b610452600480360360208110156104ad57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611353565b610452600480360360208110156104e057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114b4565b6103f16004803603602081101561051357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661151c565b61040d611615565b610540611639565b6040805160ff9092168252519081900360200190f35b610452600480360361010081101561056d57600080fd5b81019060208101813564010000000081111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460018302840111640100000000831117156105bc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561060f57600080fd5b82018360208201111561062157600080fd5b8035906020019184600183028401116401000000008311171561064357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561069657600080fd5b8201836020820111156106a857600080fd5b803590602001918460018302840111640100000000831117156106ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050813560ff16925050602081013573ffffffffffffffffffffffffffffffffffffffff90811691604081013582169160608201358116916080013516611642565b61074a611984565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040d6119a0565b61074a6119af565b6103f16004803603604081101561079957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356119cb565b610452611b23565b6103f1600480360360408110156107da57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611be6565b6104526004803603602081101561081357600080fd5b5035611fb7565b6103f16004803603604081101561083057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612259565b6103436123ec565b6104526004803603602081101561087157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612423565b610452600480360360a08110156108a457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060ff604082013516906060810135906080013561258a565b6103f1612628565b61040d600480360360208110156108fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612649565b61040d6004803603602081101561092d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661265a565b61040d612682565b6104526126a6565b61040d6004803603602081101561097057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612780565b61074a6127a8565b6103436127c4565b61074a61283d565b61040d612859565b6103f1600480360360408110156109c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561287d565b6103f1600480360360408110156109fc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356129d5565b61045260048036036020811015610a3557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612b2d565b6103f160048036036020811015610a6857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612c94565b61045260048036036020811015610a9b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612cbf565b61045260048036036060811015610ace57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135612e26565b61074a612ebc565b610452600480360360e0811015610b1957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135612ed8565b61045260048036036020811015610b7757600080fd5b810190602081018135640100000000811115610b9257600080fd5b820183602082011115610ba457600080fd5b80359060200191846001830284011164010000000083111715610bc657600080fd5b50909250905061303c565b61040d613125565b61040d60048036036040811015610bef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516613149565b6104526004803603610120811015610c2b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135613181565b6103436132e9565b6103f160048036036040811015610c9e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135613362565b6104526004803603610120811015610cd857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e081013590610100013561339a565b61045260048036036020811015610d4357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166134f5565b61045260048036036020811015610d7657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613648565b6103f160048036036020811015610da957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613705565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b820191906000526020600020905b815481529060010190602001808311610e4d57829003601f168201915b505050505081565b60015460009074010000000000000000000000000000000000000000900460ff1615610eff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33610f098161370c565b15610f5f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83610f698161370c565b15610fbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613737565b506001949350505050565b600b5490565b60025473ffffffffffffffffffffffffffffffffffffffff16331461104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614e8a602c913960400191505060405180910390fd5b6110548161387e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e90600090a250565b60015460009074010000000000000000000000000000000000000000900460ff161561112557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3361112f8161370c565b15611185576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b8461118f8161370c565b156111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b846111ef8161370c565b15611245576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020548511156112ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614f506028913960400191505060405180910390fd5b6112d9878787613889565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600a602090815260408083203384529091529020546113149086613a54565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600a60209081526040808320338452909152902055600193505050509392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146113d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614de8602a913960400191505060405180910390fd5b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b60125460ff166001146114c657600080fd5b60006114d130613a9d565b905080156114e4576114e4308383613889565b6114ed30613ac5565b5050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179055565b60085460009073ffffffffffffffffffffffffffffffffffffffff16331461158f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614e616029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055600d909152808220829055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a2506001919050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60065460ff1681565b60085474010000000000000000000000000000000000000000900460ff16156116b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614fcb602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416611722576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614efd602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831661178e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614dbf6029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166117fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180614f78602e913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611866576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806150b86028913960400191505060405180910390fd5b87516118799060049060208b0190614b95565b50865161188d9060059060208a0190614b95565b5085516118a1906007906020890190614b95565b50600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff8716179055600880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff878116919091179092556001805482168684161790556002805490911691841691909117905561193b81613ad0565b5050600880547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b60006119aa613b17565b905090565b600e5473ffffffffffffffffffffffffffffffffffffffff1690565b60015460009074010000000000000000000000000000000000000000900460ff1615611a5857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33611a628161370c565b15611ab8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83611ac28161370c565b15611b18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613b1d565b60015473ffffffffffffffffffffffffffffffffffffffff163314611b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061506c6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60015460009074010000000000000000000000000000000000000000900460ff1615611c7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff16611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614edc6021913960400191505060405180910390fd5b33611ce58161370c565b15611d3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83611d458161370c565b15611d9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614d546023913960400191505060405180910390fd5b60008411611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614e126029913960400191505060405180910390fd5b336000908152600d602052604090205480851115611ec9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061503e602e913960400191505060405180910390fd5b600b54611ed69086613b67565b600b55611ef586611ef087611eea83613a9d565b90613b67565b613bdb565b611eff8186613a54565b336000818152600d6020908152604091829020939093558051888152905173ffffffffffffffffffffffffffffffffffffffff8a16937fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8928290030190a360408051868152905173ffffffffffffffffffffffffffffffffffffffff8816916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600195945050505050565b60015474010000000000000000000000000000000000000000900460ff161561204157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336000908152600c602052604090205460ff166120a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614edc6021913960400191505060405180910390fd5b336120b38161370c565b15612109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b600061211433613a9d565b90506000831161216f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614d2b6029913960400191505060405180910390fd5b828110156121c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614eb66026913960400191505060405180910390fd5b600b546121d59084613a54565b600b556121e633611ef08386613a54565b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051848152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3505050565b60015460009074010000000000000000000000000000000000000000900460ff16156122e657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314612356576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614e616029913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000818152600c6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055600d825291829020859055815185815291517f46980fca912ef9bcdbd36877427b6b90e860769f604e89c0e67720cece530d209281900390910190a250600192915050565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b60005473ffffffffffffffffffffffffffffffffffffffff1633146124a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612515576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180614cd86028913960400191505060405180910390fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b60015474010000000000000000000000000000000000000000900460ff161561261457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6126218585858585613c04565b5050505050565b60015474010000000000000000000000000000000000000000900460ff1681565b600061265482613a9d565b92915050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526011602052604090205490565b7fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de881565b60015473ffffffffffffffffffffffffffffffffffffffff163314612716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061506c6022913960400191505060405180910390fd5b600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b60015460009074010000000000000000000000000000000000000000900460ff161561290a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b336129148161370c565b1561296a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b836129748161370c565b156129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613c44565b60015460009074010000000000000000000000000000000000000000900460ff1615612a6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b33612a6c8161370c565b15612ac2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b83612acc8161370c565b15612b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b610fca338686613889565b60005473ffffffffffffffffffffffffffffffffffffffff163314612bb357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612c1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614efd602f913960400191505060405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fdb66dfa9c6b8f5226fe9aac7e51897ae8ee94ac31dc70bb6c9900b2574b707e690600090a250565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314612d4557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612db1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061510e6032913960400191505060405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fc67398012c111ce95ecb7429b933096c977380ee6c421175a71a4a4c6c88c06e90600090a250565b600e5473ffffffffffffffffffffffffffffffffffffffff163314612e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180614f2c6024913960400191505060405180910390fd5b612eb773ffffffffffffffffffffffffffffffffffffffff84168383613ca0565b505050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015474010000000000000000000000000000000000000000900460ff1615612f6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b86612f6c8161370c565b15612fc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b86612fcc8161370c565b15613022576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b61303189898989898989613d2d565b505050505050505050565b60085474010000000000000000000000000000000000000000900460ff168015613069575060125460ff16155b61307257600080fd5b61307e60048383614c13565b506130f382828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600181527f320000000000000000000000000000000000000000000000000000000000000060208201529150613d789050565b600f555050601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152600a6020908152604080832093909416825291909152205490565b60015474010000000000000000000000000000000000000000900460ff161561320b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b886132158161370c565b1561326b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b886132758161370c565b156132cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b6132dc8b8b8b8b8b8b8b8b8b613d8e565b5050505050505050505050565b6007805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610e6a5780601f10610e3f57610100808354040283529160200191610e6a565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152601060209081526040808320938352929052205460ff1690565b60015474010000000000000000000000000000000000000000900460ff161561342457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b8861342e8161370c565b15613484576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b8861348e8161370c565b156134e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151406025913960400191505060405180910390fd5b6132dc8b8b8b8b8b8b8b8b8b613dd2565b60005473ffffffffffffffffffffffffffffffffffffffff16331461357b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166135e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614d776026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a161364581613ad0565b50565b60025473ffffffffffffffffffffffffffffffffffffffff1633146136b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614e8a602c913960400191505060405180910390fd5b6136c181613ac5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a250565b6000612654825b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff83166137a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061501a6024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661380f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614d9d6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8084166000818152600a6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b613645816000613e16565b73ffffffffffffffffffffffffffffffffffffffff83166138f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614ff56025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216613961576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614cb56023913960400191505060405180910390fd5b61396a83613a9d565b8111156139c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180614e3b6026913960400191505060405180910390fd5b6139d983611ef0836139d387613a9d565b90613a54565b6139ea82611ef083611eea86613a9d565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000613a9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613e6c565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526009602052604090205490565b613645816001613e16565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600f5490565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600a6020908152604080832093861683529290522054612eb79084908490613b629085613b67565b613737565b600082820183811015613a9657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff909116600090815260096020526040902055565b6126218585848487604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052613f1d565b612eb78383613b628460405180606001604052806025815260200161518a6025913973ffffffffffffffffffffffffffffffffffffffff808a166000908152600a60209081526040808320938c16835292905220549190613e6c565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052612eb7908490614027565b613d6f87878787868689604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526140ff565b50505050505050565b600046613d868484836143c3565b949350505050565b61303189898989898988888b604051602001808481526020018381526020018260ff1660f81b81526001019350505050604051602081830303815290604052614437565b61303189898989898988888b604051602001808481526020018381526020018260ff1660f81b815260010193505050506040516020818303038152906040526144ea565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008184841115613f15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613eda578181015183820152602001613ec2565b50505050905090810190601f168015613f075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b613f2783836145f6565b613fa1837f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960001b8585604051602001808481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040516020818303038152906040528051906020012083614684565b73ffffffffffffffffffffffffffffffffffffffff8316600081815260106020908152604080832086845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518492917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050565b6060614089826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166148029092919063ffffffff16565b805190915015612eb7578080602001905160208110156140a857600080fd5b5051612eb7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061508e602a913960400191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82148061412d5750428210155b61419857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a207065726d697420697320657870697265640000604482015290519081900360640190fd5b60006142406141a5613b17565b73ffffffffffffffffffffffffffffffffffffffff80891660008181526011602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938b166060840152608083018a905260a083019390935260c08083018990528151808403909101815260e090920190528051910120614811565b9050734200000000000000000000000000000000000776636ccea6528783856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156142cd5781810151838201526020016142b5565b50505050905090810190601f1680156142fa5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561431957600080fd5b505af415801561432d573d6000803e3d6000fd5b505050506040513d602081101561434357600080fd5b50516143b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f454950323631323a20696e76616c6964207369676e6174757265000000000000604482015290519081900360640190fd5b6143bb868686613737565b505050505050565b8251602093840120825192840192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8187015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c09092019052805191012090565b6144438783868661484b565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206144d590889083614684565b6144df878361490b565b613d6f878787613889565b73ffffffffffffffffffffffffffffffffffffffff86163314614558576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180614fa66025913960400191505060405180910390fd5b6145648783868661484b565b604080517fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de860208083019190915273ffffffffffffffffffffffffffffffffffffffff808b1683850152891660608301526080820188905260a0820187905260c0820186905260e08083018690528351808403909101815261010090920190925280519101206144d590889083614684565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260106020908152604080832084845290915290205460ff1615614680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806150e0602e913960400191505060405180910390fd5b5050565b734200000000000000000000000000000000000776636ccea652846146b06146aa613b17565b86614811565b846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561471f578181015183820152602001614707565b50505050905090810190601f16801561474c5780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561476b57600080fd5b505af415801561477f573d6000803e3d6000fd5b505050506040513d602081101561479557600080fd5b5051612eb757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f46696174546f6b656e56323a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6060613d868484600085614990565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b8142116148a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614d00602b913960400191505060405180910390fd5b8042106148fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151656025913960400191505060405180910390fd5b61490584846145f6565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260106020908152604080832085845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b606061499b85614b5c565b614a0657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310614a7057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101614a33565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614ad2576040519150601f19603f3d011682016040523d82523d6000602084013e614ad7565b606091505b50915091508115614aeb579150613d869050565b805115614afb5780518082602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152865160248401528651879391928392604401919085019080838360008315613eda578181015183820152602001613ec2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590613d86575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614bd657805160ff1916838001178555614c03565b82800160010185558215614c03579182015b82811115614c03578251825591602001919060010190614be8565b50614c0f929150614c9f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614c72578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555614c03565b82800160010185558215614c03579182015b82811115614c03578235825591602001919060010190614c84565b5b80821115614c0f5760008155600101614ca056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735061757361626c653a206e65772070617573657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e206973206e6f74207965742076616c696446696174546f6b656e3a206275726e20616d6f756e74206e6f742067726561746572207468616e203046696174546f6b656e3a206d696e7420746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737346696174546f6b656e3a206e65772070617573657220697320746865207a65726f2061646472657373526573637561626c653a206e6577207265736375657220697320746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e74206e6f742067726561746572207468616e203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f7420746865206d61737465724d696e746572426c61636b6c69737461626c653a2063616c6c6572206973206e6f742074686520626c61636b6c697374657246696174546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e636546696174546f6b656e3a2063616c6c6572206973206e6f742061206d696e74657246696174546f6b656e3a206e6577206d61737465724d696e74657220697320746865207a65726f2061646472657373526573637561626c653a2063616c6c6572206973206e6f7420746865207265736375657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546696174546f6b656e3a206e657720626c61636b6c697374657220697320746865207a65726f206164647265737346696174546f6b656e56323a2063616c6c6572206d7573742062652074686520706179656546696174546f6b656e3a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737346696174546f6b656e3a206d696e7420616d6f756e742065786365656473206d696e746572416c6c6f77616e63655061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656446696174546f6b656e3a206e6577206f776e657220697320746865207a65726f206164647265737346696174546f6b656e56323a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c6564426c61636b6c69737461626c653a206e657720626c61636b6c697374657220697320746865207a65726f2061646472657373426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656446696174546f6b656e56323a20617574686f72697a6174696f6e206973206578706972656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa164736f6c634300060c000a","sourceMap":"867:758:31:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1153:18:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7228:311;;;;;;;;;;;;;;;;-1:-1:-1;7228:311:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6566:100;;;:::i;:::-;;;;;;;;;;;;;;;;2337:141:20;;;;;;;;;;;;;;;;-1:-1:-1;2337:141:20;;;;:::i;:::-;;8437:502:22;;;;;;;;;;;;;;;;-1:-1:-1;8437:502:22;;;;;;;;;;;;;;;;;;:::i;1934:230:18:-;;;;;;;;;;;;;;;;-1:-1:-1;1934:230:18;;;;:::i;1033:392:31:-;;;;;;;;;;;;;;;;-1:-1:-1;1033:392:31;;;;:::i;10865:211:22:-;;;;;;;;;;;;;;;;-1:-1:-1;10865:211:22;;;;:::i;1202:108:26:-;;;:::i;1203:21:22:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2795:1036;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2795:1036:22;;;;;;;;-1:-1:-1;2795:1036:22;;-1:-1:-1;;2795:1036:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2795:1036:22;;;;;;;;-1:-1:-1;2795:1036:22;;-1:-1:-1;;2795:1036:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2795:1036:22;;-1:-1:-1;;;2795:1036:22;;;;;-1:-1:-1;;2795:1036:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1258:27::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1072:102:28;;;:::i;1139:83:18:-;;;:::i;1677:322:30:-;;;;;;;;;;;;;;;;-1:-1:-1;1677:322:30;;;;;;;;;:::i;2803:94:24:-;;;:::i;4348:832:22:-;;;;;;;;;;;;;;;;-1:-1:-1;4348:832:22;;;;;;;;;:::i;11369:506::-;;;;;;;;;;;;;;;;-1:-1:-1;11369:506:22;;:::i;10343:356::-;;;;;;;;;;;;;;;;-1:-1:-1;10343:356:22;;;;;;;;;:::i;1539:84:31:-;;;:::i;3018:220:24:-;;;;;;;;;;;;;;;;-1:-1:-1;3018:220:24;;;;:::i;5102:249:30:-;;;;;;;;;;;;;;;;-1:-1:-1;5102:249:30;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2107:26:24:-;;;:::i;6853:120:22:-;;;;;;;;;;;;;;;;-1:-1:-1;6853:120:22;;;;:::i;1503:107:26:-;;;;;;;;;;;;;;;;-1:-1:-1;1503:107:26;;;;:::i;1672:136:27:-;;;:::i;2624:89:24:-;;;:::i;5595:118:22:-;;;;;;;;;;;;;;;;-1:-1:-1;5595:118:22;;;;:::i;2358:79:23:-;;;:::i;1177:20:22:-;;;:::i;2080:21:24:-;;;:::i;1384:137:27:-;;;:::i;2212:322:30:-;;;;;;;;;;;;;;;;-1:-1:-1;2212:322:30;;;;;;;;;:::i;9137:282:22:-;;;;;;;;;;;;;;;;-1:-1:-1;9137:282:22;;;;;;;;;:::i;12016:269::-;;;;;;;;;;;;;;;;-1:-1:-1;12016:269:22;;;;:::i;5914:104::-;;;;;;;;;;;;;;;;-1:-1:-1;5914:104:22;;;;:::i;2614:265:20:-;;;;;;;;;;;;;;;;-1:-1:-1;2614:265:20;;;;:::i;1664:147:18:-;;;;;;;;;;;;;;;;-1:-1:-1;1664:147:18;;;;;;;;;;;;;;;;;;:::i;879:26:20:-;;;:::i;5843:361:30:-;;;;;;;;;;;;;;;;-1:-1:-1;5843:361:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1147:317::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1147:317:30;;-1:-1:-1;1147:317:30;-1:-1:-1;1147:317:30;:::i;1889:130:27:-;;;:::i;6300:139:22:-;;;;;;;;;;;;;;;;-1:-1:-1;6300:139:22;;;;;;;;;;;:::i;3105:441:30:-;;;;;;;;;;;;;;;;-1:-1:-1;3105:441:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1230:22:22:-;;;:::i;2670:155:27:-;;;;;;;;;;;;;;;;-1:-1:-1;2670:155:27;;;;;;;;;:::i;4285:439:30:-;;;;;;;;;;;;;;;;-1:-1:-1;4285:439:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2948:235:23:-;;;;;;;;;;;;;;;;-1:-1:-1;2948:235:23;;;;:::i;2068:135:20:-;;;;;;;;;;;;;;;;-1:-1:-1;2068:135:20;;;;:::i;1837:118::-;;;;;;;;;;;;;;;;-1:-1:-1;1837:118:20;;;;:::i;1153:18:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7228:311::-;2287:6:24;;7455:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7394:10:22::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7429:7:22::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7475:36:22::3;7484:10;7496:7;7505:5;7475:8;:36::i;:::-;-1:-1:-1::0;7528:4:22::3;::::0;7228:311;-1:-1:-1;;;;7228:311:22:o;6566:100::-;6647:12;;6566:100;:::o;2337:141:20:-;1284:11;;;;1270:10;:25;1262:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2411:22:::1;2424:8;2411:12;:22::i;:::-;2448:23;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;2337:141:::0;:::o;8437:502:22:-;2287:6:24;;8694:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8609:10:22::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8644:4:22::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8673:2:22::3;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8731:13:22::4;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8745:10:::4;8731:25:::0;;;;;;;;8722:34;::::4;;8714:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8811:26;8821:4;8827:2;8831:5;8811:9;:26::i;:::-;8875:13;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8889:10:::4;8875:25:::0;;;;;;;;:36:::4;::::0;8905:5;8875:29:::4;:36::i;:::-;8847:13;::::0;::::4;;::::0;;;:7:::4;:13;::::0;;;;;;;8861:10:::4;8847:25:::0;;;;;;;:64;8928:4:::4;::::0;-1:-1:-1;1621:1:20::3;::::2;2324::24::1;8437:502:22::0;;;;;:::o;1934:230:18:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2014:24:18::1;::::0;::::1;2006:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2095:8;:21:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;2131:26:::1;::::0;::::1;::::0;-1:-1:-1;;2131:26:18::1;1934:230:::0;:::o;1033:392:31:-;1157:19;;;;;:24;1149:33;;;;;;1193:20;1216:25;1235:4;1216:10;:25::i;:::-;1193:48;-1:-1:-1;1255:16:31;;1251:99;;1287:52;1305:4;1312:12;1326;1287:9;:52::i;:::-;1359:25;1378:4;1359:10;:25::i;:::-;-1:-1:-1;;1395:19:31;:23;;;;1417:1;1395:23;;;1033:392::o;10865:211:22:-;5334:12;;10938:4;;5334:12;;5320:10;:26;5312:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10954:15:::1;::::0;::::1;10972:5;10954:15:::0;;;:7:::1;:15;::::0;;;;;;;:23;;;::::1;::::0;;10987:13:::1;:21:::0;;;;;;:25;;;11027:21;::::1;::::0;10972:5;11027:21:::1;-1:-1:-1::0;11065:4:22::1;10865:211:::0;;;:::o;1202:108:26:-;1244:66;1202:108;:::o;1203:21:22:-;;;;;;:::o;2795:1036::-;3111:11;;;;;;;3110:12;3102:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3187:29;;;3179:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3286:23;;;3278:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3373:28;;;3365:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3470:22;;;3462:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3548:16;;;;:4;;:16;;;;;:::i;:::-;-1:-1:-1;3574:20:22;;;;:6;;:20;;;;;:::i;:::-;-1:-1:-1;3604:24:22;;;;:8;;:24;;;;;:::i;:::-;-1:-1:-1;3638:8:22;:24;;;;;;;;;;3672:12;:30;;;;;;;;;;;;;;;;;-1:-1:-1;3712:18:22;;;;;;;;;;3740:11;:28;;;;;;;;;;;;;;3778:18;3787:8;3778;:18::i;:::-;-1:-1:-1;;3806:11:22;:18;;;;;;;;-1:-1:-1;;;;;;2795:1036:22:o;1258:27::-;;;;;;:::o;1072:102:28:-;1123:7;1149:18;:16;:18::i;:::-;1142:25;;1072:102;:::o;1139:83:18:-;1207:8;;;;1139:83;:::o;1677:322:30:-;2287:6:24;;1901:4:30;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:10:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1875:7:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1921:50:30::3;1940:10;1952:7;1961:9;1921:18;:50::i;2803:94:24:-:0;2474:6;;;;2460:10;:20;2452:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2852:6:::1;:14:::0;;;::::1;::::0;;2881:9:::1;::::0;::::1;::::0;2861:5:::1;::::0;2881:9:::1;2803:94::o:0;4348:832:22:-;2287:6:24;;4553:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3967:10:22::1;3959:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;3951:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4496:10:::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4531:3:22::3;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4581:17:22::4;::::0;::::4;4573:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4666:1;4656:7;:11;4648:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4769:10;4724:28;4755:25:::0;;;:13:::4;:25;::::0;;;;;4798:31;;::::4;;4790:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4906:12;::::0;:25:::4;::::0;4923:7;4906:16:::4;:25::i;:::-;4891:12;:40:::0;4941:46:::4;4953:3:::0;4958:28:::4;4978:7:::0;4958:15:::4;4953:3:::0;4958:10:::4;:15::i;:::-;:19:::0;::::4;:28::i;:::-;4941:11;:46::i;:::-;5025:33;:20:::0;5050:7;5025:24:::4;:33::i;:::-;5011:10;4997:25;::::0;;;:13:::4;:25;::::0;;;;;;;;:61;;;;5073:30;;;;;;;4997:25:::4;5073:30:::0;::::4;::::0;::::4;::::0;;;;;;::::4;5118:34;::::0;;;;;;;::::4;::::0;::::4;::::0;5135:1:::4;::::0;5118:34:::4;::::0;;;;::::4;::::0;;::::4;-1:-1:-1::0;5169:4:22::4;::::0;4348:832;-1:-1:-1;;;;;4348:832:22:o;11369:506::-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3967:10:22::1;3959:19;::::0;;;:7:::1;:19;::::0;;;;;::::1;;3951:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11450:10:::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11472:15:22::3;11490:22;11501:10;11490;:22::i;:::-;11472:40;;11540:1;11530:7;:11;11522:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11616:7;11605;:18;;11597:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11692:12;::::0;:25:::3;::::0;11709:7;11692:16:::3;:25::i;:::-;11677:12;:40:::0;11727:45:::3;11739:10;11751:20;:7:::0;11763;11751:11:::3;:20::i;11727:45::-;11787:25;::::0;;;;;;;11792:10:::3;::::0;11787:25:::3;::::0;;;;;::::3;::::0;;::::3;11827:41;::::0;;;;;;;11856:1:::3;::::0;11836:10:::3;::::0;11827:41:::3;::::0;;;;::::3;::::0;;::::3;1621:1:20;4026::22::2;11369:506:::0;:::o;10343:356::-;2287:6:24;;10516:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5334:12:22::1;::::0;::::1;;5320:10;:26;5312:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10536:15:::2;::::0;::::2;;::::0;;;:7:::2;:15;::::0;;;;;;;:22;;;::::2;10554:4;10536:22;::::0;;10568:13:::2;:21:::0;;;;;;:43;;;10626:45;;;;;;;::::2;::::0;;;;;;;;::::2;-1:-1:-1::0;10688:4:22::2;10343:356:::0;;;;:::o;1539:84:31:-;1606:10;;;;;;;;;;;;;;;;;1539:84;:::o;3018:220:24:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3097:24:24::1;::::0;::::1;3089:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3176:6;:19:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;3210:21:::1;::::0;3224:6;::::1;::::0;3210:21:::1;::::0;-1:-1:-1;;3210:21:24::1;3018:220:::0;:::o;5102:249:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5296:48:30::1;5317:10;5329:5;5336:1;5339;5342;5296:20;:48::i;:::-;5102:249:::0;;;;;:::o;2107:26:24:-;;;;;;;;;:::o;6853:120:22:-;6921:7;6947:19;6958:7;6947:10;:19::i;:::-;6940:26;6853:120;-1:-1:-1;;6853:120:22:o;1503:107:26:-;1583:20;;1557:7;1583:20;;;:13;:20;;;;;;;1503:107::o;1672:136:27:-;1742:66;1672:136;:::o;2624:89:24:-;2474:6;;;;2460:10;:20;2452:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:4:::1;2671:13:::0;;;::::1;::::0;::::1;::::0;;2699:7:::1;::::0;::::1;::::0;2671:13;;2699:7:::1;2624:89::o:0;5595:118:22:-;5685:21;;5659:7;5685:21;;;:13;:21;;;;;;;5595:118::o;2358:79:23:-;2398:7;2424:6;;;2358:79;:::o;1177:20:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2080:21:24;;;;;;:::o;1384:137:27:-;1455:66;1384:137;:::o;2212:322:30:-;2287:6:24;;2436:4:30;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2375:10:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2410:7:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:50:30::3;2475:10;2487:7;2496:9;2456:18;:50::i;9137:282:22:-:0;2287:6:24;;9339:4:22;;2287:6:24;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9283:10:22::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9318:2:22::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9359:32:22::3;9369:10;9381:2;9385:5;9359:9;:32::i;12016:269::-:0;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12107:30:22::1;::::0;::::1;12099:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:12;:31:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;12245:33:::1;::::0;12265:12;::::1;::::0;12245:33:::1;::::0;-1:-1:-1;;12245:33:22::1;12016:269:::0;:::o;5914:104::-;5995:16;;5972:4;5995:16;;;:7;:16;;;;;;;;;5914:104::o;2614:265:20:-;2716:6:23;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2703:29:20::1;::::0;::::1;2695:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2797:11;:29:::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;2841:31:::1;::::0;2860:11;::::1;::::0;2841:31:::1;::::0;-1:-1:-1;;2841:31:20::1;2614:265:::0;:::o;1664:147:18:-;1370:8;;;;1356:10;:22;1348:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1766:38:::1;:26;::::0;::::1;1793:2:::0;1797:6;1766:26:::1;:38::i;:::-;1664:147:::0;;;:::o;879:26:20:-;;;;;;:::o;5843:361:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6095:5:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6125:7:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6148:49:30::3;6156:5;6163:7;6172:5;6179:8;6189:1;6192;6195;6148:7;:49::i;:::-;1621:1:20::2;2324::24::1;5843:361:30::0;;;;;;;:::o;1147:317::-;1272:11;;;;;;;:39;;;;-1:-1:-1;1287:19:30;;;;:24;1272:39;1264:48;;;;;;1322:14;:4;1329:7;;1322:14;:::i;:::-;;1384:40;1411:7;;1384:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1384:40:30;;;;;;;;;;;;;;;;;;-1:-1:-1;1384:26:30;;-1:-1:-1;1384:40:30:i;:::-;1346:35;:78;-1:-1:-1;;1434:19:30;:23;;;;1456:1;1434:23;;;1147:317::o;1889:130:27:-;1953:66;1889:130;:::o;6300:139:22:-;6409:14;;;;6383:7;6409:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;6300:139::o;3105:441:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:4:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3437:2:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:84:30::3;3482:4;3488:2;3492:5;3499:10;3511:11;3524:5;3531:1;3534;3537;3455:26;:84::i;:::-;1621:1:20::2;2324::24::1;3105:441:30::0;;;;;;;;;:::o;1230:22:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:155:27;2779:32;;;;;2756:4;2779:32;;;:20;:32;;;;;;;;:39;;;;;;;;;;;2670:155::o;4285:439:30:-;2287:6:24;;;;;;;2286:7;2278:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:4:30::1;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4616:2:30::2;1545:24:20;1560:8;1545:14;:24::i;:::-;1544:25;1536:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4634:83:30::3;4660:4;4666:2;4670:5;4677:10;4689:11;4702:5;4709:1;4712;4715;4634:25;:83::i;2948:235:23:-:0;2716:6;;;;2702:10;:20;2694:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3030:22:::1;::::0;::::1;3022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:6;::::0;3110:38:::1;::::0;;3131:6:::1;::::0;;::::1;3110:38:::0;;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;;;;;;::::1;3158:18;3167:8;3158;:18::i;:::-;2948:235:::0;:::o;2068:135:20:-;1284:11;;;;1270:10;:25;1262:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2140:20:::1;2151:8;2140:10;:20::i;:::-;2175:21;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;2068:135:::0;:::o;1837:118::-;1901:4;1924:24;1939:8;13432:144:22;13537:32;;13514:4;13537:32;;;:22;:32;;;;;;;;;13432:144::o;7741:333::-;7842:19;;;7834:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7920:21;;;7912:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;:31;;;8036;;;;;;;;;;;;;;;;;7741:333;;;:::o;12502:110::-;12570:35;12589:8;12599:5;12570:18;:35::i;9604:472::-;9700:18;;;9692:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9778:16;;;9770:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9861:16;9872:4;9861:10;:16::i;:::-;9852:5;:25;;9844:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9931:46;9943:4;9949:27;9970:5;9949:16;9960:4;9949:10;:16::i;:::-;:20;;:27::i;9931:46::-;9987:42;9999:2;10003:25;10022:5;10003:14;10014:2;10003:10;:14::i;9987:42::-;10059:2;10044:25;;10053:4;10044:25;;;10063:5;10044:25;;;;;;;;;;;;;;;;;;9604:472;;;:::o;1321:134:0:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;1321:134;-1:-1:-1;;;1321:134:0:o;13776:137:22:-;13871:35;;13845:7;13871:35;;;:25;:35;;;;;;;13776:137::o;12340:107::-;12406:34;12425:8;12435:4;12406:18;:34::i;2496:79:23:-;2551:6;:17;;;;;;;;;;;;;;;2496:79::o;1312:127:28:-;1397:35;;1312:127;:::o;6434:178:30:-;6566:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;6541:64;;6550:5;;6557:7;;6566:38;;6594:9;6566:27;:38::i;:::-;6541:8;:64::i;874:176:0:-;932:7;963:5;;;986:6;;;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13240:137:22;13324:35;;;;;;;;:25;:35;;;;;:46;13240:137::o;7875:188:27:-;7990:66;8011:10;8023:5;8047:1;8050;8053;8030:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:20;:66::i;6842:219:30:-;6949:105;6958:5;6965:7;6974:79;7002:9;6974:79;;;;;;;;;;;;;;;;;:14;;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;:79;:27;:79::i;696:175:2:-;805:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;828:23;805:58;;;778:86;;798:5;;778:19;:86::i;2103:280:26:-;2309:67;2317:5;2324:7;2333:5;2340:8;2367:1;2370;2373;2350:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2309:7;:67::i;:::-;2103:280;;;;;;;:::o;1773:258:14:-;1868:7;1946:9;1981:43;2001:4;2007:7;1946:9;1981:19;:43::i;:::-;1974:50;1773:258;-1:-1:-1;;;;1773:258:14:o;3396:382:27:-;3669:102;3696:4;3702:2;3706:5;3713:10;3725:11;3738:5;3762:1;3765;3768;3745:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3669:26;:102::i;5729:380::-;6001:101;6027:4;6033:2;6037:5;6044:10;6056:11;6069:5;6093:1;6096;6099;6076:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6001;:101::i;12884:154:22:-;12980:32;;;;;;;;;:22;:32;;;;;:51;;;;;;;;;;;;;12884:154::o;1746:187:0:-;1832:7;1867:12;1859:6;;;;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1902:5:0;;;1746:187::o;8411:423:27:-;8519:46;8547:10;8559:5;8519:27;:46::i;:::-;8575:140;8611:10;1953:66;8644:29;;8675:10;8687:5;8633:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8623:71;;;;;;8696:9;8575:22;:140::i;:::-;8726:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;:46;;;;8768:4;8726:46;;;8787:40;8759:5;;8726:32;8787:40;;;8411:423;;;:::o;2959:751:2:-;3378:23;3404:69;3432:4;3404:69;;;;;;;;;;;;;;;;;3412:5;3404:27;;;;:69;;;;;:::i;:::-;3487:17;;3378:95;;-1:-1:-1;3487:21:2;3483:221;;3627:10;3616:30;;;;;;;;;;;;;;;-1:-1:-1;3616:30:2;3608:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2918:659:26;3121:17;3109:8;:29;:48;;;;3154:3;3142:8;:15;;3109:48;3101:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3203:21;3227:183;3273:18;:16;:18::i;:::-;3366:20;;;;3326:15;3366:20;;;:13;:20;;;;;;;;;:22;;;;;;;;3315:84;;1244:66;3315:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3305:95;;;;;3227:32;:183::i;:::-;3203:207;;3428:16;:36;3465:5;3472:13;3487:9;3428:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3428:69:26;3420:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3539:31;3548:5;3555:7;3564:5;3539:8;:31::i;:::-;2918:659;;;;;;:::o;998:598:14:-;1444:22;;;;;;;1484:25;;;;;;;;;1217:362;;;1360:66;1217:362;;;;;;;;;;;;;;;;;;;;;;;;;1560:4;1217:362;;;;;;;;;;;;;;;;;;;;;;;;1194:395;;;;;;998:598::o;4380:610:27:-;4630:64;4657:4;4663:5;4670:10;4682:11;4630:26;:64::i;:::-;4768:97;;;1455:66;4768:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4758:108;;;;;4704:195;;4740:4;;4880:9;4704:22;:195::i;:::-;4910:37;4935:4;4941:5;4910:24;:37::i;:::-;4957:26;4967:4;4973:2;4977:5;4957:9;:26::i;6874:684::-;7131:16;;;7137:10;7131:16;7123:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:64;7226:4;7232:5;7239:10;7251:11;7199:26;:64::i;:::-;7337:96;;;1742:66;7337:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7327:107;;;;;7273:194;;7309:4;;7448:9;7273:22;:194::i;9644:201::-;9748:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;;;9747:40;9739:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9644:201;;:::o;9119:346::-;9253:16;:36;9307:6;9315:62;9348:18;:16;:18::i;:::-;9368:8;9315:32;:62::i;:::-;9379:9;9253:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9253:149:27;9232:226;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3770:194:3;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;1821:358:15:-;1980:4;1974:11;2010:10;1998:23;;2050:4;2041:14;;2034:39;;;;2102:4;2093:14;;2086:34;2158:4;2143:20;;;1949:224::o;10171:405:27:-;10378:10;10372:3;:16;10364:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10460:11;10454:3;:17;10446:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10523:46;10551:10;10563:5;10523:27;:46::i;:::-;10171:405;;;;:::o;10747:191::-;10834:32;;;;;;;:20;:32;;;;;;;;:39;;;;;;;;;:46;;;;10876:4;10834:46;;;10895:36;10867:5;;10834:32;10895:36;;;10747:191;;:::o;5117:958:3:-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;-1:-1:-1;5516:17:3;;-1:-1:-1;5516:17:3;5489:580;5634:17;;:21;5630:429;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6024:20;;;;;;;;;;;;;;;;;;;;6031:12;;6024:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;718:610;778:4;1239:20;;1084:66;1278:23;;;;;;:42;;-1:-1:-1;;1305:15:3;;;1270:51;-1:-1:-1;;718:610:3:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"CANCEL_AUTHORIZATION_TYPEHASH()":"d9169487","DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","RECEIVE_WITH_AUTHORIZATION_TYPEHASH()":"7f2eecc3","TRANSFER_WITH_AUTHORIZATION_TYPEHASH()":"a0cc6a68","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","authorizationState(address,bytes32)":"e94a0102","balanceOf(address)":"70a08231","blacklist(address)":"f9f92be4","blacklister()":"bd102430","burn(uint256)":"42966c68","cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":"5a049a70","configureMinter(address,uint256)":"4e44d956","currency()":"e5a6b10f","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","initialize(string,string,string,uint8,address,address,address,address)":"3357162b","initializeV2(string)":"d608ea64","initializeV2_1(address)":"2fc81e09","isBlacklisted(address)":"fe575a87","isMinter(address)":"aa271e1a","masterMinter()":"35d99f35","mint(address,uint256)":"40c10f19","minterAllowance(address)":"8a6db9c3","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pauser()":"9fd0506d","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"ef55bec6","removeMinter(address)":"3092afd5","rescueERC20(address,address,uint256)":"b2118a8d","rescuer()":"38a63183","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":"e3ee160e","unBlacklist(address)":"1a895266","unpause()":"3f4ba83a","updateBlacklister(address)":"ad38bf22","updateMasterMinter(address)":"aa20e1e4","updatePauser(address)":"554bab3c","updateRescuer(address)":"2ab60045","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"AuthorizationCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"AuthorizationUsed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"Blacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newBlacklister\",\"type\":\"address\"}],\"name\":\"BlacklisterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newMasterMinter\",\"type\":\"address\"}],\"name\":\"MasterMinterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minterAllowedAmount\",\"type\":\"uint256\"}],\"name\":\"MinterConfigured\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldMinter\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"PauserChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRescuer\",\"type\":\"address\"}],\"name\":\"RescuerChanged\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"UnBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CANCEL_AUTHORIZATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIVE_WITH_AUTHORIZATION_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TRANSFER_WITH_AUTHORIZATION_TYPEHASH\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"}],\"name\":\"authorizationState\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blacklister\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"cancelAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minterAllowedAmount\",\"type\":\"uint256\"}],\"name\":\"configureMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currency\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decrement\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"increment\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenCurrency\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"newMasterMinter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newPauser\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newBlacklister\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newName\",\"type\":\"string\"}],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lostAndFound\",\"type\":\"address\"}],\"name\":\"initializeV2_1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isBlacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"masterMinter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"minterAllowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauser\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validBefore\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"receiveWithAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"rescueERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rescuer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"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\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validBefore\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nonce\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"transferWithAuthorization\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"unBlacklist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newBlacklister\",\"type\":\"address\"}],\"name\":\"updateBlacklister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newMasterMinter\",\"type\":\"address\"}],\"name\":\"updateMasterMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newPauser\",\"type\":\"address\"}],\"name\":\"updatePauser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRescuer\",\"type\":\"address\"}],\"name\":\"updateRescuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"returns\":{\"_0\":\"The bytes32 EIP712 domain separator.\"}},\"allowance(address,address)\":{\"params\":{\"owner\":\"The token owner's address.\",\"spender\":\"The spender's address.\"},\"returns\":{\"_0\":\"The remaining allowance.\"}},\"approve(address,uint256)\":{\"params\":{\"spender\":\"The spender's address.\",\"value\":\"The allowance amount.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"authorizationState(address,bytes32)\":{\"details\":\"Nonces are randomly generated 32-byte data unique to the authorizer's address\",\"params\":{\"authorizer\":\"Authorizer's address\",\"nonce\":\"Nonce of the authorization\"},\"returns\":{\"_0\":\"True if the nonce is used\"}},\"balanceOf(address)\":{\"params\":{\"account\":\"The address to check.\"},\"returns\":{\"_0\":\"balance The fiat token balance of the account.\"}},\"blacklist(address)\":{\"params\":{\"_account\":\"The address to blacklist.\"}},\"burn(uint256)\":{\"details\":\"The caller must be a minter, must not be blacklisted, and the amount to burn should be less than or equal to the account's balance.\",\"params\":{\"_amount\":\"the amount of tokens to be burned.\"}},\"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Works only if the authorization is not yet used.\",\"params\":{\"authorizer\":\"Authorizer's address\",\"nonce\":\"Nonce of the authorization\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"v\":\"v of the signature\"}},\"configureMinter(address,uint256)\":{\"params\":{\"minter\":\"The address of the minter.\",\"minterAllowedAmount\":\"The minting amount allowed for the minter.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"decreaseAllowance(address,uint256)\":{\"params\":{\"decrement\":\"Amount of decrease in allowance\",\"spender\":\"Spender's address\"},\"returns\":{\"_0\":\"True if successful\"}},\"increaseAllowance(address,uint256)\":{\"params\":{\"increment\":\"Amount of increase in allowance\",\"spender\":\"Spender's address\"},\"returns\":{\"_0\":\"True if successful\"}},\"initialize(string,string,string,uint8,address,address,address,address)\":{\"params\":{\"newBlacklister\":\"The blacklister address for the fiat token.\",\"newMasterMinter\":\"The masterMinter address for the fiat token.\",\"newOwner\":\"The owner of the fiat token.\",\"newPauser\":\"The pauser address for the fiat token.\",\"tokenCurrency\":\"The fiat currency that the token represents.\",\"tokenDecimals\":\"The number of decimals that the token uses.\",\"tokenName\":\"The name of the fiat token.\",\"tokenSymbol\":\"The symbol of the fiat token.\"}},\"initializeV2(string)\":{\"params\":{\"newName\":\"New token name\"}},\"initializeV2_1(address)\":{\"params\":{\"lostAndFound\":\"The address to which the locked funds are sent\"}},\"isBlacklisted(address)\":{\"params\":{\"_account\":\"The address to check.\"},\"returns\":{\"_0\":\"True if the account is blacklisted, false if the account is not blacklisted.\"}},\"isMinter(address)\":{\"params\":{\"account\":\"The address to check.\"},\"returns\":{\"_0\":\"True if the account is a minter, false if the account is not a minter.\"}},\"mint(address,uint256)\":{\"params\":{\"_amount\":\"The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller.\",\"_to\":\"The address that will receive the minted tokens.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"minterAllowance(address)\":{\"params\":{\"minter\":\"The address to check.\"},\"returns\":{\"_0\":\"The remaining minter allowance for the account.\"}},\"nonces(address)\":{\"params\":{\"owner\":\"Token owner's address (Authorizer)\"},\"returns\":{\"_0\":\"Next nonce\"}},\"owner()\":{\"details\":\"Tells the address of the owner\",\"returns\":{\"_0\":\"the address of the owner\"}},\"pause()\":{\"details\":\"called by the owner to pause, triggers stopped state\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"params\":{\"deadline\":\"The time at which the signature expires (unix time), or max uint256 value to signal no expiration\",\"owner\":\"Token owner's address (Authorizer)\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"spender\":\"Spender's address\",\"v\":\"v of the signature\",\"value\":\"Amount of allowance\"}},\"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.\",\"params\":{\"from\":\"Payer's address (Authorizer)\",\"nonce\":\"Unique nonce\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"to\":\"Payee's address\",\"v\":\"v of the signature\",\"validAfter\":\"The time after which this is valid (unix time)\",\"validBefore\":\"The time before which this is valid (unix time)\",\"value\":\"Amount to be transferred\"}},\"removeMinter(address)\":{\"params\":{\"minter\":\"The address of the minter to remove.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"rescueERC20(address,address,uint256)\":{\"params\":{\"amount\":\"Amount to withdraw\",\"to\":\"Recipient address\",\"tokenContract\":\"ERC20 token contract address\"}},\"rescuer()\":{\"returns\":{\"_0\":\"Rescuer's address\"}},\"totalSupply()\":{\"returns\":{\"_0\":\"The totalSupply of the fiat token.\"}},\"transfer(address,uint256)\":{\"params\":{\"to\":\"Payee's address.\",\"value\":\"Transfer amount.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"The caller must have some fiat token allowance on the payer's tokens.\",\"params\":{\"from\":\"Payer's address.\",\"to\":\"Payee's address.\",\"value\":\"Transfer amount.\"},\"returns\":{\"_0\":\"True if the operation was successful.\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"params\":{\"from\":\"Payer's address (Authorizer)\",\"nonce\":\"Unique nonce\",\"r\":\"r of the signature\",\"s\":\"s of the signature\",\"to\":\"Payee's address\",\"v\":\"v of the signature\",\"validAfter\":\"The time after which this is valid (unix time)\",\"validBefore\":\"The time before which this is valid (unix time)\",\"value\":\"Amount to be transferred\"}},\"unBlacklist(address)\":{\"params\":{\"_account\":\"The address to remove from the blacklist.\"}},\"unpause()\":{\"details\":\"called by the owner to unpause, returns to normal state\"},\"updateBlacklister(address)\":{\"params\":{\"_newBlacklister\":\"The address of the new blacklister.\"}},\"updateMasterMinter(address)\":{\"params\":{\"_newMasterMinter\":\"The address of the new master minter.\"}},\"updatePauser(address)\":{\"params\":{\"_newPauser\":\"The address of the new pauser.\"}},\"updateRescuer(address)\":{\"params\":{\"newRescuer\":\"The address of the new rescuer.\"}},\"version()\":{\"returns\":{\"_0\":\"Version string\"}}},\"title\":\"FiatToken V2.1\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"notice\":\"Get the EIP712 Domain Separator.\"},\"allowance(address,address)\":{\"notice\":\"Gets the remaining amount of fiat tokens a spender is allowed to transfer on behalf of the token owner.\"},\"approve(address,uint256)\":{\"notice\":\"Sets a fiat token allowance for a spender to spend on behalf of the caller.\"},\"authorizationState(address,bytes32)\":{\"notice\":\"Returns the state of an authorization\"},\"balanceOf(address)\":{\"notice\":\"Gets the fiat token balance of an account.\"},\"blacklist(address)\":{\"notice\":\"Adds account to blacklist.\"},\"burn(uint256)\":{\"notice\":\"Allows a minter to burn some of its own tokens.\"},\"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Attempt to cancel an authorization\"},\"configureMinter(address,uint256)\":{\"notice\":\"Adds or updates a new minter with a mint allowance.\"},\"decreaseAllowance(address,uint256)\":{\"notice\":\"Decrease the allowance by a given decrement\"},\"increaseAllowance(address,uint256)\":{\"notice\":\"Increase the allowance by a given increment\"},\"initialize(string,string,string,uint8,address,address,address,address)\":{\"notice\":\"Initializes the fiat token contract.\"},\"initializeV2(string)\":{\"notice\":\"Initialize v2\"},\"initializeV2_1(address)\":{\"notice\":\"Initialize v2.1\"},\"isBlacklisted(address)\":{\"notice\":\"Checks if account is blacklisted.\"},\"isMinter(address)\":{\"notice\":\"Checks if an account is a minter.\"},\"mint(address,uint256)\":{\"notice\":\"Mints fiat tokens to an address.\"},\"minterAllowance(address)\":{\"notice\":\"Gets the minter allowance for an account.\"},\"nonces(address)\":{\"notice\":\"Nonces for permit\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"notice\":\"Update allowance with a signed permit\"},\"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Receive a transfer with a signed authorization from the payer\"},\"removeMinter(address)\":{\"notice\":\"Removes a minter.\"},\"rescueERC20(address,address,uint256)\":{\"notice\":\"Rescue ERC20 tokens locked up in this contract.\"},\"rescuer()\":{\"notice\":\"Returns current rescuer\"},\"totalSupply()\":{\"notice\":\"Gets the totalSupply of the fiat token.\"},\"transfer(address,uint256)\":{\"notice\":\"Transfers tokens from the caller.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Transfers tokens from an address to another by spending the caller's allowance.\"},\"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)\":{\"notice\":\"Execute a transfer with a signed authorization\"},\"unBlacklist(address)\":{\"notice\":\"Removes account from blacklist.\"},\"updateBlacklister(address)\":{\"notice\":\"Updates the blacklister address.\"},\"updateMasterMinter(address)\":{\"notice\":\"Updates the master minter address.\"},\"updatePauser(address)\":{\"notice\":\"Updates the pauser address.\"},\"updateRescuer(address)\":{\"notice\":\"Updates the rescuer address.\"},\"version()\":{\"notice\":\"Version string for the EIP712 domain separator\"}},\"notice\":\"ERC20 Token backed by fiat reserves, version 2.1\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol\":\"FiatTokenV2_1\"},\"evmVersion\":\"istanbul\",\"libraries\":{\"SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"lib/openzeppelin-contracts_v3.1.0/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/interface/IERC1271.sol\":{\"keccak256\":\"0xbdb06a96b03ebe4b178df317415a307dda773d888999228ec9136829a39483a5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a379bef8e91e746c8a5ee2e2546032acba745021d241563954dab4ea8d3de130\",\"dweb:/ipfs/Qmf7A8XiHrR6FM7nMN1xbvGoQ7i9hUb2bgFofNYBjpWMqa\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/ECRecover.sol\":{\"keccak256\":\"0x95fb7106fe5954d4f5be2d9fd731524a4cba5a27ae9ecc61b210e10216b4d770\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fd0b791ba1d3e454844566cc2f8ebabfa8038f81e2180643995d3fc0172b87d4\",\"dweb:/ipfs/QmaN7jhTATcAgGe6NbPqDxN7AAqzDKdv6Db64pt9BVdwM3\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/EIP712.sol\":{\"keccak256\":\"0x7bc4bfee8042bbadeb6606670e857531c5524c78d95dac619a0019f4826abfaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d25da9a02e2def23b4606c6625d26810f7132ff3c8312d3dfd4319a76cd9497\",\"dweb:/ipfs/QmTgRwtosFh7nbiuxax382i5YDY4kc6A3GHL8kY5oHDgNX\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol\":{\"keccak256\":\"0x30c544cf024e8f04071ca0e5e75ec26890acefe62f5b8c9baeeaa0653aa9c2b1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://dc4d849bf3e24c378fb381cbb0dceb316df9584bad1c83b0871e9a4cb76aadf6\",\"dweb:/ipfs/QmXSq5T7wV9DyyCgbJJyMif9Yor4tcSMyPXaTUCwwrRnkL\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol\":{\"keccak256\":\"0x34a9ea7304dd9892e95ec34de00b7e447e76af8a6834d02664fc1b88726468e4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://700af14b4acc005d31c9bff851544c5aabc6ab89be4484488e724dfdb9d5e5d2\",\"dweb:/ipfs/QmT4SpKgBHbA9S7m8ZKQFb87nCKknue3XjYtwHJm4EfHrF\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/FiatTokenV1_1.sol\":{\"keccak256\":\"0x3b728c44c15c1ea7a61b6461742958834bc398b169da10cd350fc1a444a93c34\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a99ba77233ae53ccf7b6827a94730a1a664a8f525cc291b6b29090aa4ebb2bcf\",\"dweb:/ipfs/Qme9eZZh7YRk4kEj68Qgr58898gnT1XmminvKVhpvRCkTv\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol\":{\"keccak256\":\"0x3a1724df6032053b3409d137fde519cf3e2de040876791f006ae52901367c65e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b094ccbb80b92665184634ce74d7f79ad057311e47b66dc3be07a7db0128f1a1\",\"dweb:/ipfs/QmV52aq78xsE4Yun8EJqBJNVLEYKNuFN89kYXokdJ3knrK\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol\":{\"keccak256\":\"0x8c8304c7f254e274e51f5b886d91f91c731432885aa352d25ed881c1682a9700\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3470e35dd7dc304944f2d9718b6164976b7e5f1d6c8efcdd511d73bb3b5bf273\",\"dweb:/ipfs/QmaZwLkCDpDdJuHKvsCQHpVars5Xrp2xfM8budLENUSmW6\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Blacklistable.sol\":{\"keccak256\":\"0x0a81bb84c1c6f84d9b29ea065825b67f0c2514933c947ef7a235687b1d02abe5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://eb99105e2e4af6be3fbd30beb39a389b920dbdfa00e712b056e8c883832b44fc\",\"dweb:/ipfs/QmQQemDRjA82ywmJQ3dJhMjEdJjvPEezyXzEtCppVDUNfe\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol\":{\"keccak256\":\"0xd2e239041e121efa4b66aee229a522bac3b959aab3f66249f17c1c1d0371b616\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://370ac5f4cd368c671c414518e2286b598d6320612165c7c5145ffe904c730099\",\"dweb:/ipfs/QmWBUMmpC7kECREYZcbyKw14LfpAbJvZnPe4E31KvJjEeu\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol\":{\"keccak256\":\"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549\",\"dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Pausable.sol\":{\"keccak256\":\"0xb9a79584f8405cee912de46324f35f67de2b2457498f713ed5ada8d2e91d67be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://831d6348c99afe201c720dea740aa7cd652051c2118102d9556bd989936da888\",\"dweb:/ipfs/QmYCxGYuEZnxbgXoLNbr9TFy8SXKktwfG2sxWgrAgHxXwD\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol\":{\"keccak256\":\"0x0cf455818990842275c1daa8e0c7b3f9a036597c044e3b6d362d5eddda1ef073\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5331cfcdb2e5c13c5fdc2b0f9675076fd59a6fb218601b8c93ddc0ec4a689bea\",\"dweb:/ipfs/QmcBtpDdvULSc8GzHoTK5jVZhHHp1Enh5iWgBLgVjUk44h\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol\":{\"keccak256\":\"0xe86116e56b1c94303d70b5f80a74b81f94efe01c53b5ae827cd2ca529ce27e17\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://36cf6fd0e0690a16fa5feee16be167ec724aa63bb0c154b29c1947fc0ddc5553\",\"dweb:/ipfs/QmQdUUDcsHMysjs1wg7DdTRD9MSd4kuDTCDdd4d8VcY1XC\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP3009.sol\":{\"keccak256\":\"0x59fd2de92fc76f5580a1918c73487ad036e246e1fe40d41d5209366e8fc6c3f5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://722d9a77930880dcc8bcdbb1b950ea187ca6ceda571460c5f76e4a4b7cad799a\",\"dweb:/ipfs/QmbM8HdtUeQVBr1VAGEjAQUpdwodSj89j63mxqS8Ve9zHB\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol\":{\"keccak256\":\"0x982d6a56247dfd6429392b56b27baa2888ebe4861473d77b8d3e8e2e361e8854\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a39671c171176dcb617d275b610a2ab83d5745483781d2fcd41c15a7b5c55b0b\",\"dweb:/ipfs/QmVpHjbEyUA9h7a4C9UMKMLwbyovDd6HM2jYNwobBaWA4x\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol\":{\"keccak256\":\"0xa4a8d42bcc8ad296c7713bec5e0bb1ea6ec4172aac7a0092928b897ccf20a11a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81fa1bc1ff48c85993936014dd057276e826f24b519ad660c30c5b47b009bc0c\",\"dweb:/ipfs/QmR85uGAkfczQYqXDNADwuBFspjLiLw3jLteq2WkQiKCwc\"]},\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol\":{\"keccak256\":\"0x5d9a408ef8bc1e7573d300311b04a0dce644f3d323fada1a317049fe42d0198d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://aef5cd2cc564ed2b7a3241bf45ec1b08e8790f890070f44262dd26a57c3948d9\",\"dweb:/ipfs/QmUJzXsDcg6dTnQvjZzeCUsrPqp6JubCyd6Q9FK8axt6vR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"authorizer","type":"address","indexed":true},{"internalType":"bytes32","name":"nonce","type":"bytes32","indexed":true}],"type":"event","name":"AuthorizationCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"authorizer","type":"address","indexed":true},{"internalType":"bytes32","name":"nonce","type":"bytes32","indexed":true}],"type":"event","name":"AuthorizationUsed","anonymous":false},{"inputs":[{"internalType":"address","name":"_account","type":"address","indexed":true}],"type":"event","name":"Blacklisted","anonymous":false},{"inputs":[{"internalType":"address","name":"newBlacklister","type":"address","indexed":true}],"type":"event","name":"BlacklisterChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"burner","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"newMasterMinter","type":"address","indexed":true}],"type":"event","name":"MasterMinterChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"minter","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"minter","type":"address","indexed":true},{"internalType":"uint256","name":"minterAllowedAmount","type":"uint256","indexed":false}],"type":"event","name":"MinterConfigured","anonymous":false},{"inputs":[{"internalType":"address","name":"oldMinter","type":"address","indexed":true}],"type":"event","name":"MinterRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":false},{"internalType":"address","name":"newOwner","type":"address","indexed":false}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"type":"event","name":"Pause","anonymous":false},{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":true}],"type":"event","name":"PauserChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"newRescuer","type":"address","indexed":true}],"type":"event","name":"RescuerChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"_account","type":"address","indexed":true}],"type":"event","name":"UnBlacklisted","anonymous":false},{"inputs":[],"type":"event","name":"Unpause","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"CANCEL_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIVE_WITH_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TRANSFER_WITH_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"}],"stateMutability":"view","type":"function","name":"authorizationState","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"blacklist"},{"inputs":[],"stateMutability":"view","type":"function","name":"blacklister","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"authorizer","type":"address"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"cancelAuthorization"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"minterAllowedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"configureMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"currency","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"decrement","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"increment","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"string","name":"tokenCurrency","type":"string"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"},{"internalType":"address","name":"newMasterMinter","type":"address"},{"internalType":"address","name":"newPauser","type":"address"},{"internalType":"address","name":"newBlacklister","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"string","name":"newName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initializeV2"},{"inputs":[{"internalType":"address","name":"lostAndFound","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initializeV2_1"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"masterMinter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"view","type":"function","name":"minterAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pauser","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"receiveWithAuthorization"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract IERC20","name":"tokenContract","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"rescueERC20"},{"inputs":[],"stateMutability":"view","type":"function","name":"rescuer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"transferWithAuthorization"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unBlacklist"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"_newBlacklister","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateBlacklister"},{"inputs":[{"internalType":"address","name":"_newMasterMinter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateMasterMinter"},{"inputs":[{"internalType":"address","name":"_newPauser","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updatePauser"},{"inputs":[{"internalType":"address","name":"newRescuer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRescuer"},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The bytes32 EIP712 domain separator."}},"allowance(address,address)":{"params":{"owner":"The token owner's address.","spender":"The spender's address."},"returns":{"_0":"The remaining allowance."}},"approve(address,uint256)":{"params":{"spender":"The spender's address.","value":"The allowance amount."},"returns":{"_0":"True if the operation was successful."}},"authorizationState(address,bytes32)":{"details":"Nonces are randomly generated 32-byte data unique to the authorizer's address","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization"},"returns":{"_0":"True if the nonce is used"}},"balanceOf(address)":{"params":{"account":"The address to check."},"returns":{"_0":"balance The fiat token balance of the account."}},"blacklist(address)":{"params":{"_account":"The address to blacklist."}},"burn(uint256)":{"details":"The caller must be a minter, must not be blacklisted, and the amount to burn should be less than or equal to the account's balance.","params":{"_amount":"the amount of tokens to be burned."}},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"details":"Works only if the authorization is not yet used.","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization","r":"r of the signature","s":"s of the signature","v":"v of the signature"}},"configureMinter(address,uint256)":{"params":{"minter":"The address of the minter.","minterAllowedAmount":"The minting amount allowed for the minter."},"returns":{"_0":"True if the operation was successful."}},"decreaseAllowance(address,uint256)":{"params":{"decrement":"Amount of decrease in allowance","spender":"Spender's address"},"returns":{"_0":"True if successful"}},"increaseAllowance(address,uint256)":{"params":{"increment":"Amount of increase in allowance","spender":"Spender's address"},"returns":{"_0":"True if successful"}},"initialize(string,string,string,uint8,address,address,address,address)":{"params":{"newBlacklister":"The blacklister address for the fiat token.","newMasterMinter":"The masterMinter address for the fiat token.","newOwner":"The owner of the fiat token.","newPauser":"The pauser address for the fiat token.","tokenCurrency":"The fiat currency that the token represents.","tokenDecimals":"The number of decimals that the token uses.","tokenName":"The name of the fiat token.","tokenSymbol":"The symbol of the fiat token."}},"initializeV2(string)":{"params":{"newName":"New token name"}},"initializeV2_1(address)":{"params":{"lostAndFound":"The address to which the locked funds are sent"}},"isBlacklisted(address)":{"params":{"_account":"The address to check."},"returns":{"_0":"True if the account is blacklisted, false if the account is not blacklisted."}},"isMinter(address)":{"params":{"account":"The address to check."},"returns":{"_0":"True if the account is a minter, false if the account is not a minter."}},"mint(address,uint256)":{"params":{"_amount":"The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller.","_to":"The address that will receive the minted tokens."},"returns":{"_0":"True if the operation was successful."}},"minterAllowance(address)":{"params":{"minter":"The address to check."},"returns":{"_0":"The remaining minter allowance for the account."}},"nonces(address)":{"params":{"owner":"Token owner's address (Authorizer)"},"returns":{"_0":"Next nonce"}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"pause()":{"details":"called by the owner to pause, triggers stopped state"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"params":{"deadline":"The time at which the signature expires (unix time), or max uint256 value to signal no expiration","owner":"Token owner's address (Authorizer)","r":"r of the signature","s":"s of the signature","spender":"Spender's address","v":"v of the signature","value":"Amount of allowance"}},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"details":"This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.","params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"removeMinter(address)":{"params":{"minter":"The address of the minter to remove."},"returns":{"_0":"True if the operation was successful."}},"rescueERC20(address,address,uint256)":{"params":{"amount":"Amount to withdraw","to":"Recipient address","tokenContract":"ERC20 token contract address"}},"rescuer()":{"returns":{"_0":"Rescuer's address"}},"totalSupply()":{"returns":{"_0":"The totalSupply of the fiat token."}},"transfer(address,uint256)":{"params":{"to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferFrom(address,address,uint256)":{"details":"The caller must have some fiat token allowance on the payer's tokens.","params":{"from":"Payer's address.","to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"unBlacklist(address)":{"params":{"_account":"The address to remove from the blacklist."}},"unpause()":{"details":"called by the owner to unpause, returns to normal state"},"updateBlacklister(address)":{"params":{"_newBlacklister":"The address of the new blacklister."}},"updateMasterMinter(address)":{"params":{"_newMasterMinter":"The address of the new master minter."}},"updatePauser(address)":{"params":{"_newPauser":"The address of the new pauser."}},"updateRescuer(address)":{"params":{"newRescuer":"The address of the new rescuer."}},"version()":{"returns":{"_0":"Version string"}}},"version":1},"userdoc":{"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"Get the EIP712 Domain Separator."},"allowance(address,address)":{"notice":"Gets the remaining amount of fiat tokens a spender is allowed to transfer on behalf of the token owner."},"approve(address,uint256)":{"notice":"Sets a fiat token allowance for a spender to spend on behalf of the caller."},"authorizationState(address,bytes32)":{"notice":"Returns the state of an authorization"},"balanceOf(address)":{"notice":"Gets the fiat token balance of an account."},"blacklist(address)":{"notice":"Adds account to blacklist."},"burn(uint256)":{"notice":"Allows a minter to burn some of its own tokens."},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"notice":"Attempt to cancel an authorization"},"configureMinter(address,uint256)":{"notice":"Adds or updates a new minter with a mint allowance."},"decreaseAllowance(address,uint256)":{"notice":"Decrease the allowance by a given decrement"},"increaseAllowance(address,uint256)":{"notice":"Increase the allowance by a given increment"},"initialize(string,string,string,uint8,address,address,address,address)":{"notice":"Initializes the fiat token contract."},"initializeV2(string)":{"notice":"Initialize v2"},"initializeV2_1(address)":{"notice":"Initialize v2.1"},"isBlacklisted(address)":{"notice":"Checks if account is blacklisted."},"isMinter(address)":{"notice":"Checks if an account is a minter."},"mint(address,uint256)":{"notice":"Mints fiat tokens to an address."},"minterAllowance(address)":{"notice":"Gets the minter allowance for an account."},"nonces(address)":{"notice":"Nonces for permit"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"notice":"Update allowance with a signed permit"},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Receive a transfer with a signed authorization from the payer"},"removeMinter(address)":{"notice":"Removes a minter."},"rescueERC20(address,address,uint256)":{"notice":"Rescue ERC20 tokens locked up in this contract."},"rescuer()":{"notice":"Returns current rescuer"},"totalSupply()":{"notice":"Gets the totalSupply of the fiat token."},"transfer(address,uint256)":{"notice":"Transfers tokens from the caller."},"transferFrom(address,address,uint256)":{"notice":"Transfers tokens from an address to another by spending the caller's allowance."},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Execute a transfer with a signed authorization"},"unBlacklist(address)":{"notice":"Removes account from blacklist."},"updateBlacklister(address)":{"notice":"Updates the blacklister address."},"updateMasterMinter(address)":{"notice":"Updates the master minter address."},"updatePauser(address)":{"notice":"Updates the pauser address."},"updateRescuer(address)":{"notice":"Updates the rescuer address."},"version()":{"notice":"Version string for the EIP712 domain separator"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol":"FiatTokenV2_1"},"evmVersion":"istanbul","libraries":{"SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts_v3.1.0/contracts/math/SafeMath.sol":{"keccak256":"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806","urls":["bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5","dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385","urls":["bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017","dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/token/ERC20/SafeERC20.sol":{"keccak256":"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27","urls":["bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3","dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE"],"license":"MIT"},"lib/openzeppelin-contracts_v3.1.0/contracts/utils/Address.sol":{"keccak256":"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498","urls":["bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff","dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/interface/IERC1271.sol":{"keccak256":"0xbdb06a96b03ebe4b178df317415a307dda773d888999228ec9136829a39483a5","urls":["bzz-raw://a379bef8e91e746c8a5ee2e2546032acba745021d241563954dab4ea8d3de130","dweb:/ipfs/Qmf7A8XiHrR6FM7nMN1xbvGoQ7i9hUb2bgFofNYBjpWMqa"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/ECRecover.sol":{"keccak256":"0x95fb7106fe5954d4f5be2d9fd731524a4cba5a27ae9ecc61b210e10216b4d770","urls":["bzz-raw://fd0b791ba1d3e454844566cc2f8ebabfa8038f81e2180643995d3fc0172b87d4","dweb:/ipfs/QmaN7jhTATcAgGe6NbPqDxN7AAqzDKdv6Db64pt9BVdwM3"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/EIP712.sol":{"keccak256":"0x7bc4bfee8042bbadeb6606670e857531c5524c78d95dac619a0019f4826abfaf","urls":["bzz-raw://1d25da9a02e2def23b4606c6625d26810f7132ff3c8312d3dfd4319a76cd9497","dweb:/ipfs/QmTgRwtosFh7nbiuxax382i5YDY4kc6A3GHL8kY5oHDgNX"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/MessageHashUtils.sol":{"keccak256":"0x30c544cf024e8f04071ca0e5e75ec26890acefe62f5b8c9baeeaa0653aa9c2b1","urls":["bzz-raw://dc4d849bf3e24c378fb381cbb0dceb316df9584bad1c83b0871e9a4cb76aadf6","dweb:/ipfs/QmXSq5T7wV9DyyCgbJJyMif9Yor4tcSMyPXaTUCwwrRnkL"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/util/SignatureChecker.sol":{"keccak256":"0x34a9ea7304dd9892e95ec34de00b7e447e76af8a6834d02664fc1b88726468e4","urls":["bzz-raw://700af14b4acc005d31c9bff851544c5aabc6ab89be4484488e724dfdb9d5e5d2","dweb:/ipfs/QmT4SpKgBHbA9S7m8ZKQFb87nCKknue3XjYtwHJm4EfHrF"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/FiatTokenV1_1.sol":{"keccak256":"0x3b728c44c15c1ea7a61b6461742958834bc398b169da10cd350fc1a444a93c34","urls":["bzz-raw://a99ba77233ae53ccf7b6827a94730a1a664a8f525cc291b6b29090aa4ebb2bcf","dweb:/ipfs/Qme9eZZh7YRk4kEj68Qgr58898gnT1XmminvKVhpvRCkTv"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1.1/Rescuable.sol":{"keccak256":"0x3a1724df6032053b3409d137fde519cf3e2de040876791f006ae52901367c65e","urls":["bzz-raw://b094ccbb80b92665184634ce74d7f79ad057311e47b66dc3be07a7db0128f1a1","dweb:/ipfs/QmV52aq78xsE4Yun8EJqBJNVLEYKNuFN89kYXokdJ3knrK"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/AbstractFiatTokenV1.sol":{"keccak256":"0x8c8304c7f254e274e51f5b886d91f91c731432885aa352d25ed881c1682a9700","urls":["bzz-raw://3470e35dd7dc304944f2d9718b6164976b7e5f1d6c8efcdd511d73bb3b5bf273","dweb:/ipfs/QmaZwLkCDpDdJuHKvsCQHpVars5Xrp2xfM8budLENUSmW6"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Blacklistable.sol":{"keccak256":"0x0a81bb84c1c6f84d9b29ea065825b67f0c2514933c947ef7a235687b1d02abe5","urls":["bzz-raw://eb99105e2e4af6be3fbd30beb39a389b920dbdfa00e712b056e8c883832b44fc","dweb:/ipfs/QmQQemDRjA82ywmJQ3dJhMjEdJjvPEezyXzEtCppVDUNfe"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/FiatTokenV1.sol":{"keccak256":"0xd2e239041e121efa4b66aee229a522bac3b959aab3f66249f17c1c1d0371b616","urls":["bzz-raw://370ac5f4cd368c671c414518e2286b598d6320612165c7c5145ffe904c730099","dweb:/ipfs/QmWBUMmpC7kECREYZcbyKw14LfpAbJvZnPe4E31KvJjEeu"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Ownable.sol":{"keccak256":"0x3185c30c5c78bfab0e88f219e3ad48c30aaeca8ebd4d888e6efda41021a5a759","urls":["bzz-raw://03e00b50b100a50ef4dc0e07663291ddda6ba6023befc7b47c899bb700ad1549","dweb:/ipfs/QmcHhU6ppJDQnY8UWpzSMy1XSLUJ4ZXqhuwnShxP4sQ2gB"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v1/Pausable.sol":{"keccak256":"0xb9a79584f8405cee912de46324f35f67de2b2457498f713ed5ada8d2e91d67be","urls":["bzz-raw://831d6348c99afe201c720dea740aa7cd652051c2118102d9556bd989936da888","dweb:/ipfs/QmYCxGYuEZnxbgXoLNbr9TFy8SXKktwfG2sxWgrAgHxXwD"],"license":"MIT"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/AbstractFiatTokenV2.sol":{"keccak256":"0x0cf455818990842275c1daa8e0c7b3f9a036597c044e3b6d362d5eddda1ef073","urls":["bzz-raw://5331cfcdb2e5c13c5fdc2b0f9675076fd59a6fb218601b8c93ddc0ec4a689bea","dweb:/ipfs/QmcBtpDdvULSc8GzHoTK5jVZhHHp1Enh5iWgBLgVjUk44h"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP2612.sol":{"keccak256":"0xe86116e56b1c94303d70b5f80a74b81f94efe01c53b5ae827cd2ca529ce27e17","urls":["bzz-raw://36cf6fd0e0690a16fa5feee16be167ec724aa63bb0c154b29c1947fc0ddc5553","dweb:/ipfs/QmQdUUDcsHMysjs1wg7DdTRD9MSd4kuDTCDdd4d8VcY1XC"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP3009.sol":{"keccak256":"0x59fd2de92fc76f5580a1918c73487ad036e246e1fe40d41d5209366e8fc6c3f5","urls":["bzz-raw://722d9a77930880dcc8bcdbb1b950ea187ca6ceda571460c5f76e4a4b7cad799a","dweb:/ipfs/QmbM8HdtUeQVBr1VAGEjAQUpdwodSj89j63mxqS8Ve9zHB"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/EIP712Domain.sol":{"keccak256":"0x982d6a56247dfd6429392b56b27baa2888ebe4861473d77b8d3e8e2e361e8854","urls":["bzz-raw://a39671c171176dcb617d275b610a2ab83d5745483781d2fcd41c15a7b5c55b0b","dweb:/ipfs/QmVpHjbEyUA9h7a4C9UMKMLwbyovDd6HM2jYNwobBaWA4x"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol":{"keccak256":"0xa4a8d42bcc8ad296c7713bec5e0bb1ea6ec4172aac7a0092928b897ccf20a11a","urls":["bzz-raw://81fa1bc1ff48c85993936014dd057276e826f24b519ad660c30c5b47b009bc0c","dweb:/ipfs/QmR85uGAkfczQYqXDNADwuBFspjLiLw3jLteq2WkQiKCwc"],"license":"Apache-2.0"},"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol":{"keccak256":"0x5d9a408ef8bc1e7573d300311b04a0dce644f3d323fada1a317049fe42d0198d","urls":["bzz-raw://aef5cd2cc564ed2b7a3241bf45ec1b08e8790f890070f44262dd26a57c3948d9","dweb:/ipfs/QmUJzXsDcg6dTnQvjZzeCUsrPqp6JubCyd6Q9FK8axt6vR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":3029,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":3125,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"pauser","offset":0,"slot":"1","type":"t_address"},{"astId":3128,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"paused","offset":20,"slot":"1","type":"t_bool"},{"astId":2009,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"blacklister","offset":0,"slot":"2","type":"t_address"},{"astId":2013,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_deprecatedBlacklisted","offset":0,"slot":"3","type":"t_mapping(t_address,t_bool)"},{"astId":2191,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"name","offset":0,"slot":"4","type":"t_string_storage"},{"astId":2193,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"symbol","offset":0,"slot":"5","type":"t_string_storage"},{"astId":2195,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"decimals","offset":0,"slot":"6","type":"t_uint8"},{"astId":2197,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"currency","offset":0,"slot":"7","type":"t_string_storage"},{"astId":2199,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"masterMinter","offset":0,"slot":"8","type":"t_address"},{"astId":2201,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"initialized","offset":20,"slot":"8","type":"t_bool"},{"astId":2206,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"balanceAndBlacklistStates","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"},{"astId":2212,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"allowed","offset":0,"slot":"10","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":2215,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"totalSupply_","offset":0,"slot":"11","type":"t_uint256"},{"astId":2219,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"minters","offset":0,"slot":"12","type":"t_mapping(t_address,t_bool)"},{"astId":2223,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"minterAllowed","offset":0,"slot":"13","type":"t_mapping(t_address,t_uint256)"},{"astId":1901,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_rescuer","offset":0,"slot":"14","type":"t_address"},{"astId":3794,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_DEPRECATED_CACHED_DOMAIN_SEPARATOR","offset":0,"slot":"15","type":"t_bytes32"},{"astId":3400,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_authorizationStates","offset":0,"slot":"16","type":"t_mapping(t_address,t_mapping(t_bytes32,t_bool))"},{"astId":3255,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_permitNonces","offset":0,"slot":"17","type":"t_mapping(t_address,t_uint256)"},{"astId":4117,"contract":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol:FiatTokenV2_1","label":"_initializedVersion","offset":0,"slot":"18","type":"t_uint8"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_mapping(t_bytes32,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes32 => bool))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_bool)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"DOMAIN_SEPARATOR()":{"notice":"Get the EIP712 Domain Separator."},"allowance(address,address)":{"notice":"Gets the remaining amount of fiat tokens a spender is allowed to transfer on behalf of the token owner."},"approve(address,uint256)":{"notice":"Sets a fiat token allowance for a spender to spend on behalf of the caller."},"authorizationState(address,bytes32)":{"notice":"Returns the state of an authorization"},"balanceOf(address)":{"notice":"Gets the fiat token balance of an account."},"blacklist(address)":{"notice":"Adds account to blacklist."},"burn(uint256)":{"notice":"Allows a minter to burn some of its own tokens."},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"notice":"Attempt to cancel an authorization"},"configureMinter(address,uint256)":{"notice":"Adds or updates a new minter with a mint allowance."},"decreaseAllowance(address,uint256)":{"notice":"Decrease the allowance by a given decrement"},"increaseAllowance(address,uint256)":{"notice":"Increase the allowance by a given increment"},"initialize(string,string,string,uint8,address,address,address,address)":{"notice":"Initializes the fiat token contract."},"initializeV2(string)":{"notice":"Initialize v2"},"initializeV2_1(address)":{"notice":"Initialize v2.1"},"isBlacklisted(address)":{"notice":"Checks if account is blacklisted."},"isMinter(address)":{"notice":"Checks if an account is a minter."},"mint(address,uint256)":{"notice":"Mints fiat tokens to an address."},"minterAllowance(address)":{"notice":"Gets the minter allowance for an account."},"nonces(address)":{"notice":"Nonces for permit"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"notice":"Update allowance with a signed permit"},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Receive a transfer with a signed authorization from the payer"},"removeMinter(address)":{"notice":"Removes a minter."},"rescueERC20(address,address,uint256)":{"notice":"Rescue ERC20 tokens locked up in this contract."},"rescuer()":{"notice":"Returns current rescuer"},"totalSupply()":{"notice":"Gets the totalSupply of the fiat token."},"transfer(address,uint256)":{"notice":"Transfers tokens from the caller."},"transferFrom(address,address,uint256)":{"notice":"Transfers tokens from an address to another by spending the caller's allowance."},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"notice":"Execute a transfer with a signed authorization"},"unBlacklist(address)":{"notice":"Removes account from blacklist."},"updateBlacklister(address)":{"notice":"Updates the blacklister address."},"updateMasterMinter(address)":{"notice":"Updates the master minter address."},"updatePauser(address)":{"notice":"Updates the pauser address."},"updateRescuer(address)":{"notice":"Updates the rescuer address."},"version()":{"notice":"Version string for the EIP712 domain separator"}},"notice":"ERC20 Token backed by fiat reserves, version 2.1"},"devdoc":{"version":1,"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"returns":{"_0":"The bytes32 EIP712 domain separator."}},"allowance(address,address)":{"params":{"owner":"The token owner's address.","spender":"The spender's address."},"returns":{"_0":"The remaining allowance."}},"approve(address,uint256)":{"params":{"spender":"The spender's address.","value":"The allowance amount."},"returns":{"_0":"True if the operation was successful."}},"authorizationState(address,bytes32)":{"details":"Nonces are randomly generated 32-byte data unique to the authorizer's address","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization"},"returns":{"_0":"True if the nonce is used"}},"balanceOf(address)":{"params":{"account":"The address to check."},"returns":{"_0":"balance The fiat token balance of the account."}},"blacklist(address)":{"params":{"_account":"The address to blacklist."}},"burn(uint256)":{"details":"The caller must be a minter, must not be blacklisted, and the amount to burn should be less than or equal to the account's balance.","params":{"_amount":"the amount of tokens to be burned."}},"cancelAuthorization(address,bytes32,uint8,bytes32,bytes32)":{"details":"Works only if the authorization is not yet used.","params":{"authorizer":"Authorizer's address","nonce":"Nonce of the authorization","r":"r of the signature","s":"s of the signature","v":"v of the signature"}},"configureMinter(address,uint256)":{"params":{"minter":"The address of the minter.","minterAllowedAmount":"The minting amount allowed for the minter."},"returns":{"_0":"True if the operation was successful."}},"decreaseAllowance(address,uint256)":{"params":{"decrement":"Amount of decrease in allowance","spender":"Spender's address"},"returns":{"_0":"True if successful"}},"increaseAllowance(address,uint256)":{"params":{"increment":"Amount of increase in allowance","spender":"Spender's address"},"returns":{"_0":"True if successful"}},"initialize(string,string,string,uint8,address,address,address,address)":{"params":{"newBlacklister":"The blacklister address for the fiat token.","newMasterMinter":"The masterMinter address for the fiat token.","newOwner":"The owner of the fiat token.","newPauser":"The pauser address for the fiat token.","tokenCurrency":"The fiat currency that the token represents.","tokenDecimals":"The number of decimals that the token uses.","tokenName":"The name of the fiat token.","tokenSymbol":"The symbol of the fiat token."}},"initializeV2(string)":{"params":{"newName":"New token name"}},"initializeV2_1(address)":{"params":{"lostAndFound":"The address to which the locked funds are sent"}},"isBlacklisted(address)":{"params":{"_account":"The address to check."},"returns":{"_0":"True if the account is blacklisted, false if the account is not blacklisted."}},"isMinter(address)":{"params":{"account":"The address to check."},"returns":{"_0":"True if the account is a minter, false if the account is not a minter."}},"mint(address,uint256)":{"params":{"_amount":"The amount of tokens to mint. Must be less than or equal to the minterAllowance of the caller.","_to":"The address that will receive the minted tokens."},"returns":{"_0":"True if the operation was successful."}},"minterAllowance(address)":{"params":{"minter":"The address to check."},"returns":{"_0":"The remaining minter allowance for the account."}},"nonces(address)":{"params":{"owner":"Token owner's address (Authorizer)"},"returns":{"_0":"Next nonce"}},"owner()":{"details":"Tells the address of the owner","returns":{"_0":"the address of the owner"}},"pause()":{"details":"called by the owner to pause, triggers stopped state"},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"params":{"deadline":"The time at which the signature expires (unix time), or max uint256 value to signal no expiration","owner":"Token owner's address (Authorizer)","r":"r of the signature","s":"s of the signature","spender":"Spender's address","v":"v of the signature","value":"Amount of allowance"}},"receiveWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"details":"This has an additional check to ensure that the payee's address matches the caller of this function to prevent front-running attacks.","params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"removeMinter(address)":{"params":{"minter":"The address of the minter to remove."},"returns":{"_0":"True if the operation was successful."}},"rescueERC20(address,address,uint256)":{"params":{"amount":"Amount to withdraw","to":"Recipient address","tokenContract":"ERC20 token contract address"}},"rescuer()":{"returns":{"_0":"Rescuer's address"}},"totalSupply()":{"returns":{"_0":"The totalSupply of the fiat token."}},"transfer(address,uint256)":{"params":{"to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferFrom(address,address,uint256)":{"details":"The caller must have some fiat token allowance on the payer's tokens.","params":{"from":"Payer's address.","to":"Payee's address.","value":"Transfer amount."},"returns":{"_0":"True if the operation was successful."}},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}},"transferWithAuthorization(address,address,uint256,uint256,uint256,bytes32,uint8,bytes32,bytes32)":{"params":{"from":"Payer's address (Authorizer)","nonce":"Unique nonce","r":"r of the signature","s":"s of the signature","to":"Payee's address","v":"v of the signature","validAfter":"The time after which this is valid (unix time)","validBefore":"The time before which this is valid (unix time)","value":"Amount to be transferred"}},"unBlacklist(address)":{"params":{"_account":"The address to remove from the blacklist."}},"unpause()":{"details":"called by the owner to unpause, returns to normal state"},"updateBlacklister(address)":{"params":{"_newBlacklister":"The address of the new blacklister."}},"updateMasterMinter(address)":{"params":{"_newMasterMinter":"The address of the new master minter."}},"updatePauser(address)":{"params":{"_newPauser":"The address of the new pauser."}},"updateRescuer(address)":{"params":{"newRescuer":"The address of the new rescuer."}},"version()":{"returns":{"_0":"Version string"}}},"title":"FiatToken V2.1"},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_1.sol","id":4471,"exportedSymbols":{"FiatTokenV2_1":[4470]},"nodeType":"SourceUnit","src":"659:967:31","nodes":[{"id":4408,"nodeType":"PragmaDirective","src":"659:23:31","nodes":[],"literals":["solidity","0.6",".12"]},{"id":4410,"nodeType":"ImportDirective","src":"684:48:31","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2.sol","file":"./FiatTokenV2.sol","scope":4471,"sourceUnit":4407,"symbolAliases":[{"foreign":{"argumentTypes":null,"id":4409,"name":"FiatTokenV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":null,"src":"693:11:31","typeDescriptions":{"typeIdentifier":null,"typeString":null}},"local":null}],"unitAlias":""},{"id":4470,"nodeType":"ContractDefinition","src":"867:758:31","nodes":[{"id":4460,"nodeType":"FunctionDefinition","src":"1033:392:31","nodes":[],"body":{"id":4459,"nodeType":"Block","src":"1088:337:31","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4420,"name":"_initializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1157:19:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":4421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1180:1:31","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1157:24:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4419,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1149:7:31","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1149:33:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4424,"nodeType":"ExpressionStatement","src":"1149:33:31"},{"assignments":[4426],"declarations":[{"constant":false,"id":4426,"mutability":"mutable","name":"lockedAmount","nodeType":"VariableDeclaration","overrides":null,"scope":4459,"src":"1193:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4425,"name":"uint256","nodeType":"ElementaryTypeName","src":"1193:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4433,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4430,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1235:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenV2_1_$4470","typeString":"contract FiatTokenV2_1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FiatTokenV2_1_$4470","typeString":"contract FiatTokenV2_1"}],"id":4429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1227:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4428,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:31","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1227:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4427,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"1216:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":4432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1216:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1193:48:31"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4434,"name":"lockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"1255:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1270:1:31","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1255:16:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4447,"nodeType":"IfStatement","src":"1251:99:31","trueBody":{"id":4446,"nodeType":"Block","src":"1273:77:31","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4440,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1305:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenV2_1_$4470","typeString":"contract FiatTokenV2_1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FiatTokenV2_1_$4470","typeString":"contract FiatTokenV2_1"}],"id":4439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1297:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4438,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:31","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1297:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4442,"name":"lostAndFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4416,"src":"1312:12:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4443,"name":"lockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"1326:12:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4437,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[2782],"referencedDeclaration":2782,"src":"1287:9:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1287:52:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4445,"nodeType":"ExpressionStatement","src":"1287:52:31"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4451,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1378:4:31","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenV2_1_$4470","typeString":"contract FiatTokenV2_1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FiatTokenV2_1_$4470","typeString":"contract FiatTokenV2_1"}],"id":4450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1370:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4449,"name":"address","nodeType":"ElementaryTypeName","src":"1370:7:31","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":4452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1370:13:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4448,"name":"_blacklist","nodeType":"Identifier","overloadedDeclarations":[2953],"referencedDeclaration":2953,"src":"1359:10:31","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1359:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4454,"nodeType":"ExpressionStatement","src":"1359:25:31"},{"expression":{"argumentTypes":null,"id":4457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4455,"name":"_initializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4117,"src":"1395:19:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"32","id":4456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1417:1:31","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1395:23:31","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":4458,"nodeType":"ExpressionStatement","src":"1395:23:31"}]},"documentation":{"id":4414,"nodeType":"StructuredDocumentation","src":"911:117:31","text":" @notice Initialize v2.1\n @param lostAndFound  The address to which the locked funds are sent"},"functionSelector":"2fc81e09","implemented":true,"kind":"function","modifiers":[],"name":"initializeV2_1","overrides":null,"parameters":{"id":4417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4416,"mutability":"mutable","name":"lostAndFound","nodeType":"VariableDeclaration","overrides":null,"scope":4460,"src":"1057:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4415,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1056:22:31"},"returnParameters":{"id":4418,"nodeType":"ParameterList","parameters":[],"src":"1088:0:31"},"scope":4470,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4469,"nodeType":"FunctionDefinition","src":"1539:84:31","nodes":[],"body":{"id":4468,"nodeType":"Block","src":"1596:27:31","nodes":[],"statements":[{"expression":{"argumentTypes":null,"hexValue":"32","id":4466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1613:3:31","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"},"functionReturnParameters":4465,"id":4467,"nodeType":"Return","src":"1606:10:31"}]},"documentation":{"id":4461,"nodeType":"StructuredDocumentation","src":"1431:103:31","text":" @notice Version string for the EIP712 domain separator\n @return Version string"},"functionSelector":"54fd4d50","implemented":true,"kind":"function","modifiers":[],"name":"version","overrides":null,"parameters":{"id":4462,"nodeType":"ParameterList","parameters":[],"src":"1555:2:31"},"returnParameters":{"id":4465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4464,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":4469,"src":"1581:13:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4463,"name":"string","nodeType":"ElementaryTypeName","src":"1581:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1580:15:31"},"scope":4470,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":4412,"name":"FiatTokenV2","nodeType":"UserDefinedTypeName","referencedDeclaration":4406,"src":"893:11:31","typeDescriptions":{"typeIdentifier":"t_contract$_FiatTokenV2_$4406","typeString":"contract FiatTokenV2"}},"id":4413,"nodeType":"InheritanceSpecifier","src":"893:11:31"}],"contractDependencies":[273,1886,1975,2000,2148,3024,3108,3208,3233,3369,3789,3814,4406],"contractKind":"contract","documentation":{"id":4411,"nodeType":"StructuredDocumentation","src":"774:92:31","text":" @title FiatToken V2.1\n @notice ERC20 Token backed by fiat reserves, version 2.1"},"fullyImplemented":true,"linearizedBaseContracts":[4470,4406,3369,3789,3814,3233,1886,1975,3024,2148,3208,3108,2000,273],"name":"FiatTokenV2_1","scope":4471}],"license":"Apache-2.0"},"id":31}