[ { "inputs": [ { "internalType": "contract IERC20", "name": "token_", "type": "address" }, { "internalType": "contract IStakeToken", "name": "stakeToken_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC20ApproveFromZeroAddress", "type": "error" }, { "inputs": [], "name": "ERC20ApproveToZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "name": "ERC20BurnAmountExceedsBalance", "type": "error" }, { "inputs": [], "name": "ERC20BurnFromZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" } ], "name": "ERC20DecreasedAllowanceBelowZero", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "ERC20MintToZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "name": "ERC20TransferAmountExceedsBalance", "type": "error" }, { "inputs": [], "name": "ERC20TransferFromZeroAddress", "type": "error" }, { "inputs": [], "name": "ERC20TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "InitializerContractAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "InitializerContractIsInitializing", "type": "error" }, { "inputs": [], "name": "InitializerContractIsNotInitializing", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "InitializerVersionAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "InvalidAmount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "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": "account", "type": "address" }, { "indexed": true, "internalType": "string", "name": "reason", "type": "string" } ], "name": "Blacklisted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "DepositTokens", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "indexed": true, "internalType": "string", "name": "reason", "type": "string" } ], "name": "UnBlacklisted", "type": "event" }, { "inputs": [], "name": "DENOMINATOR", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "string[]", "name": "reasons", "type": "string[]" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "blacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "decimals_", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getOptions", "outputs": [ { "components": [ { "internalType": "address", "name": "treasury", "type": "address" }, { "internalType": "uint256", "name": "fee", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" } ], "internalType": "struct IOptions.Storage", "name": "options", "type": "tuple" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "address", "name": "treasury", "type": "address" }, { "internalType": "uint256", "name": "rate", "type": "uint256" }, { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "setFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "rate", "type": "uint256" } ], "name": "setRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "bytes32", "name": "adminRole", "type": "bytes32" } ], "name": "setRoleAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "treasury", "type": "address" } ], "name": "setTreasury", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakeToken", "outputs": [ { "internalType": "contract IStakeToken", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "string[]", "name": "reasons", "type": "string[]" } ], "name": "unblacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "unblacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60c06040523480156200001157600080fd5b506040516200402538038062004025833981016040819052620000349162000181565b6001600160a01b03821660805281620000586200006c602090811b620015d217901c565b506001600160a01b031660a05250620001c0565b6000805160206200400583398151915254610100900460ff1615620000a4576040516338733d7760e01b815260040160405180910390fd5b600080516020620040058339815191525460ff90811610156200010257620000cd60ff62000104565b60405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600080516020620040058339815191525460ff808316911610620001445760405163bfdd178560e01b815260ff8216600482015260240160405180910390fd5b60008051602062004005833981519152805460ff191660ff92909216919091179055565b6001600160a01b03811681146200017e57600080fd5b50565b600080604083850312156200019557600080fd5b8251620001a28162000168565b6020840151909250620001b58162000168565b809150509250929050565b60805160a051613df5620002106000396000818161039401528181610cb901528181610ce201526127af01526000818161057401528181610fb60152818161106c015261267c0152613df56000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c80638456cb5911610160578063ca15c873116100d8578063dd62ed3e1161008c578063f0f4426011610071578063f0f442601461055c578063fc0c546a1461056f578063fe575a871461059657600080fd5b8063dd62ed3e14610536578063ddf579ff1461054957600080fd5b8063ce5da407116100bd578063ce5da407146104fd578063d1e6c30c14610510578063d547741f1461052357600080fd5b8063ca15c873146104aa578063cc2ee196146104bd57600080fd5b806395d89b411161012f578063a9059cbb11610114578063a9059cbb14610471578063b0bc95a714610484578063b6b55f251461049757600080fd5b806395d89b4114610456578063a457c2d71461045e57600080fd5b80638456cb591461041c5780639010d07c14610424578063918f86741461043757806391d148541461044357600080fd5b806334fcf437116101f357806351ed6a30116101c257806369fe0e2d116101a757806369fe0e2d146103e35780636ebb16d3146103f657806370a082311461040957600080fd5b806351ed6a301461038f5780635c975abb146103db57600080fd5b806334fcf4371461034e57806336568abe1461036157806339509351146103745780633f4ba83a1461038757600080fd5b80631e4e00911161024a578063248a9ca31161022f578063248a9ca31461030e5780632f2ff15d14610321578063313ce5671461033457600080fd5b80631e4e0091146102e857806323b872dd146102fb57600080fd5b806306fdde031461027c578063095ea7b31461029a57806318160ddd146102bd578063186d3830146102d3575b600080fd5b6102846105a9565b6040516102919190613399565b60405180910390f35b6102ad6102a8366004613413565b6105b8565b6040519015158152602001610291565b6102c56105cf565b604051908152602001610291565b6102e66102e1366004613489565b6105f9565b005b6102e66102f63660046134f5565b6107cb565b6102ad610309366004613517565b610813565b6102c561031c366004613553565b610859565b6102e661032f36600461356c565b61088f565b61033c6108d3565b60405160ff9091168152602001610291565b6102e661035c366004613553565b610914565b6102e661036f36600461356c565b610949565b6102ad610382366004613413565b6109f8565b6102e6610a19565b6103b67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610291565b6102ad610a54565b6102e66103f1366004613553565b610a5e565b6102ad610404366004613616565b610a90565b6102c56104173660046136c3565b610a9b565b6102e6610ae5565b6103b66104323660046134f5565b610b1e565b6102c56402540be40081565b6102ad61045136600461356c565b610b31565b610284610b3d565b6102ad61046c366004613413565b610b47565b6102ad61047f366004613413565b610ba7565b6102e661049236600461376c565b610bd0565b6102e66104a5366004613553565b610e84565b6102c56104b8366004613553565b611160565b6104c561116b565b60408051825173ffffffffffffffffffffffffffffffffffffffff168152602080840151908201529181015190820152606001610291565b6102e661050b366004613489565b61123d565b6102e661051e366004613803565b6113fc565b6102e661053136600461356c565b61146a565b6102c5610544366004613886565b6114a4565b6102e6610557366004613803565b6114b0565b6102e661056a3660046136c3565b611519565b6103b67f000000000000000000000000000000000000000000000000000000000000000081565b6102ad6105a43660046136c3565b611585565b60606105b36116a1565b905090565b60006105c5338484611755565b5060015b92915050565b60006105b37f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9c5490565b6106227ff988e4fb62b8e14f4820fed03192306ddf4d7dbfa215595ba1c6ba4b76b369ee61187d565b8015610767578281146106bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f53696d706c65426c61636b6c6973743a204e6f7420656e6f756768207265617360448201527f6f6e73000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60005b838110156107615761074f8585838181106106dc576106dc6138b0565b90506020020160208101906106f191906136c3565b848484818110610703576107036138b0565b905060200281019061071591906138df565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061188792505050565b8061075981613973565b9150506106bf565b506107c5565b60005b838110156107c3576107b1858583818110610787576107876138b0565b905060200201602081019061079c91906136c3565b60405180602001604052806000815250611887565b806107bb81613973565b91505061076a565b505b50505050565b60008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d260205260409020600101546108059061187d565b61080f8282611998565b5050565b600061081f8484611a02565b610827611b01565b61083084611b0a565b61083983611b0a565b610844843384611b13565b61084f848484611b99565b5060019392505050565b60008181527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d260205260408120600101546105c9565b60008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d260205260409020600101546108c99061187d565b61080f8282611d5c565b60006109007f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12ea15460ff1690565b90508060ff16600003610911575060125b90565b61091e600061187d565b610946817f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3d55565b50565b73ffffffffffffffffffffffffffffffffffffffff811633146109ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084016106b3565b61080f8282611e5e565b60006105c5338484610a0a3388611f5e565b610a1491906139ab565b611755565b610a427f356a809dfdea9198dd76fb76bf6d403ecf13ea675eb89e1eda2db2c4a4676a2661187d565b610a4a612012565b610a526120b0565b565b60006105b3612127565b610a68600061187d565b610946817f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3c55565b60006105c982612154565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9f60205260408120546105c9565b610b0e7f356a809dfdea9198dd76fb76bf6d403ecf13ea675eb89e1eda2db2c4a4676a2661187d565b610b166121f1565b610a52612290565b6000610b2a838361230a565b9392505050565b6000610b2a8383612341565b60606105b3612434565b600080610b543385611f5e565b905080831115610b9a576040517fc7d2f36c00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016106b3565b61084f3385858403611755565b6000610bb4836000611a02565b610bbc611b01565b610bc583611b0a565b6105c5338484611b99565b7f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb354610100900460ff1615808015610c2e57507f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb354600160ff909116105b80610c4d5750303b158015610c4d5750610c46612465565b60ff166001145b15610e4957610c5c600161248d565b8015610cae577f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610cdd8787878787877f0000000000000000000000000000000000000000000000000000000000000000612545565b610dc27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f91906139be565b7f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12ea180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055565b8015610e44577f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b610e7b565b6040517f5d99ebd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b7fd370c446e45a741b5961ac03f05d57d1a5768014420ffedc28dbab09fedaee5954600203610edf576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f0860027fd370c446e45a741b5961ac03f05d57d1a5768014420ffedc28dbab09fedaee5955565b610f106121f1565b610f1933611b0a565b604080516060810182527f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3b5473ffffffffffffffffffffffffffffffffffffffff90811682527f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3c5460208301527f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3d549282019290925290610fde907f0000000000000000000000000000000000000000000000000000000000000000163330856126f5565b610fed3383836040015161278a565b60208101518290156110f35760006402540be40083602001518561101191906139e1565b61101b91906139f8565b83516040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390529192507f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d99190613a33565b6110e5576110e5613a55565b6110ef8183613a84565b9150505b6110fc816127ad565b60408051338152602081018590527fe3a6e26dceff30d982e183d0ce051fb5b791f2108785a9d440d417247cef5b41910160405180910390a1505061094660017fd370c446e45a741b5961ac03f05d57d1a5768014420ffedc28dbab09fedaee5955565b60006105c9826128a8565b6111a56040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b50604080516060810182527f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3b5473ffffffffffffffffffffffffffffffffffffffff1681527f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3c5460208201527f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3d549181019190915290565b6112667ff988e4fb62b8e14f4820fed03192306ddf4d7dbfa215595ba1c6ba4b76b369ee61187d565b80156113a0578281146112fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f53696d706c65426c61636b6c6973743a204e6f7420656e6f756768207265617360448201527f6f6e73000000000000000000000000000000000000000000000000000000000060648201526084016106b3565b60005b838110156107615761138e85858381811061131b5761131b6138b0565b905060200201602081019061133091906136c3565b848484818110611342576113426138b0565b905060200281019061135491906138df565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128de92505050565b8061139881613973565b9150506112fe565b60005b838110156107c3576113ea8585838181106113c0576113c06138b0565b90506020020160208101906113d591906136c3565b604051806020016040528060008152506128de565b806113f481613973565b9150506113a3565b6114257ff988e4fb62b8e14f4820fed03192306ddf4d7dbfa215595ba1c6ba4b76b369ee61187d565b6114658383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061188792505050565b505050565b60008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d260205260409020600101546109ee9061187d565b6000610b2a8383611f5e565b6114d97ff988e4fb62b8e14f4820fed03192306ddf4d7dbfa215595ba1c6ba4b76b369ee61187d565b6114658383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128de92505050565b611523600061187d565b7f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d602052604081205460ff166105c9565b7f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb354610100900460ff1615611633576040517f38733d7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb35460ff9081161015610a525761166a60ff61248d565b60405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a1565b60607f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9c60010180546116d290613a97565b80601f01602080910402602001604051908101604052809291908181526020018280546116fe90613a97565b801561174b5780601f106117205761010080835404028352916020019161174b565b820191906000526020600020905b81548152906001019060200180831161172e57829003601f168201915b5050505050905090565b73ffffffffffffffffffffffffffffffffffffffff83166117a2576040517fbec36d8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166117ef576040517fd8aedff600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181527f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12ea0602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b61094681336129f1565b73ffffffffffffffffffffffffffffffffffffffff821660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d602052604090205460ff161561080f5773ffffffffffffffffffffffffffffffffffffffff821660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555161194c908290613aea565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff8416907fe4e3c0e67592981f9042a3df81ea0ee0dfb06be469efdbd2bfc674ab37ab62fe90600090a35050565b60008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d26020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b611a0a612127565b1580611a3b5750611a3b7fda6fac9f81a22bb02ed26455dcee2a5f2434c8a3377a2cc986478052c1594f9e33612341565b80611a6b5750611a6b7fda6fac9f81a22bb02ed26455dcee2a5f2434c8a3377a2cc986478052c1594f9e83612341565b80611a9b5750611a9b7fda6fac9f81a22bb02ed26455dcee2a5f2434c8a3377a2cc986478052c1594f9e82612341565b61080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016106b3565b610a5233612a9a565b61094681612a9a565b6000611b1f8484611f5e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107c55780821115611b8c576040517f9667a91e00000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016106b3565b6107c58484848403611755565b73ffffffffffffffffffffffffffffffffffffffff8316611be6576040517f27903dcf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611c33576040517f0359c55e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081527f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9f60205260409020547f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9c9080831115611cde576040517f089b804c00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016106b3565b73ffffffffffffffffffffffffffffffffffffffff808616600081815260038501602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d4d9087815260200190565b60405180910390a35050505050565b611d668282612341565b61080f5760008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d26020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558483527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d39091529020611e149082612b18565b50604051339073ffffffffffffffffffffffffffffffffffffffff83169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b611e688282612341565b1561080f5760008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d26020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558483527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d39091529020611f149082612b3a565b50604051339073ffffffffffffffffffffffffffffffffffffffff83169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fba57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105c9565b5073ffffffffffffffffffffffffffffffffffffffff91821660009081527f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12ea06020908152604080832093909416825291909152205490565b61201a612127565b8061204a575061204a7fda6fac9f81a22bb02ed26455dcee2a5f2434c8a3377a2cc986478052c1594f9e33612341565b610a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016106b3565b7fb65939979d77055fe20d21bcb90b95461947bffa39f3588194f5015117626ea780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602001611697565b60007fb65939979d77055fe20d21bcb90b95461947bffa39f3588194f5015117626ea75b5460ff16919050565b6000805b82518110156121e8576121c8838281518110612176576121766138b0565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d602052604090205460ff1690565b156121d65750600192915050565b806121e081613973565b915050612158565b50600092915050565b6121f9612127565b158061222a575061222a7fda6fac9f81a22bb02ed26455dcee2a5f2434c8a3377a2cc986478052c1594f9e33612341565b610a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016106b3565b7fb65939979d77055fe20d21bcb90b95461947bffa39f3588194f5015117626ea780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001611697565b60008281527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d360205260408120610b2a9083612b5c565b60007fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d260008481526020918252604080822073ffffffffffffffffffffffffffffffffffffffff86168352909252205460ff1680610b2a57507fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d260006123f58560009081527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d2602052604090206001015490565b81526020808201929092526040908101600090812073ffffffffffffffffffffffffffffffffffffffff8616825290925290205460ff16905092915050565b60607f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9c60020180546116d290613a97565b60007f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb361214b565b7f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb35460ff8083169116106124f2576040517fbfdd178500000000000000000000000000000000000000000000000000000000815260ff821660048201526024016106b3565b7f0de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055565b612550600088611d5c565b61255986612b68565b61256285612b93565b7f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86161790556125e9837f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3d55565b612611827f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3c55565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af11580156126c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e99190613a33565b610e7b57610e7b613a55565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526107c5908590612bbe565b611465836402540be40061279e84866139e1565b6127a891906139f8565b612cca565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663adc9772e6128277f57b8fb8f652f415faa1bb4a7c251054bcda2b537623e667263e27a859c9f4e3b5473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff909116600482015260248101849052604401600060405180830381600087803b15801561289457600080fd5b505af11580156107c3573d6000803e3d6000fd5b60008181527fffaa26784aca465bf23123375047d80ccb2b41102e02e5c4ef5b5aa00624b2d3602052604081206105c990612dad565b73ffffffffffffffffffffffffffffffffffffffff821660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d602052604090205460ff1661080f5773ffffffffffffffffffffffffffffffffffffffff821660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d60205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055516129a5908290613aea565b6040519081900381209073ffffffffffffffffffffffffffffffffffffffff8416907f71ffd5b2f7b305f2f756c161455e2951077ed1951f9ecbee6252949bc1e13c5a90600090a35050565b6129fb8282612341565b61080f57612a208173ffffffffffffffffffffffffffffffffffffffff166014612db7565b612a2b836020612db7565b604051602001612a3c929190613b06565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526106b391600401613399565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fdd021e813d5056b401d30ba505d211a2ca2652076f58ad407a75764b92ed7d9d602052604090205460ff161561094657612b088173ffffffffffffffffffffffffffffffffffffffff166014612db7565b604051602001612a3c9190613b87565b6000610b2a8373ffffffffffffffffffffffffffffffffffffffff8416612ffa565b6000610b2a8373ffffffffffffffffffffffffffffffffffffffff8416613049565b6000610b2a838361313c565b7f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9d61080f8282613c41565b7f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9e61080f8282613c41565b6000612c20826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166131669092919063ffffffff16565b8051909150156114655780806020019051810190612c3e9190613a33565b611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106b3565b73ffffffffffffffffffffffffffffffffffffffff8216612d17576040517fd1bb5a3e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f1bdb0091f995c1d3419374bcead175ae14251e0f0aba8df7ace36571bda12e9c805482908290600090612d4c9084906139ab565b909155505073ffffffffffffffffffffffffffffffffffffffff831660008181526003830160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611870565b60006105c9825490565b60606000612dc68360026139e1565b612dd19060026139ab565b67ffffffffffffffff811115612de957612de9613598565b6040519080825280601f01601f191660200182016040528015612e13576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612e4a57612e4a6138b0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612ead57612ead6138b0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612ee98460026139e1565b612ef49060016139ab565b90505b6001811115612f91577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612f3557612f356138b0565b1a60f81b828281518110612f4b57612f4b6138b0565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612f8a81613d5b565b9050612ef7565b508315610b2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106b3565b6000818152600183016020526040812054613041575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105c9565b5060006105c9565b6000818152600183016020526040812054801561313257600061306d600183613a84565b855490915060009061308190600190613a84565b90508181146130e65760008660000182815481106130a1576130a16138b0565b90600052602060002001549050808760000184815481106130c4576130c46138b0565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806130f7576130f7613d90565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105c9565b60009150506105c9565b6000826000018281548110613153576131536138b0565b9060005260206000200154905092915050565b6060613175848460008561317d565b949350505050565b60608247101561320f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106b3565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516132389190613aea565b60006040518083038185875af1925050503d8060008114613275576040519150601f19603f3d011682016040523d82523d6000602084013e61327a565b606091505b509150915061328b87838387613296565b979650505050505050565b6060831561332c5782516000036133255773ffffffffffffffffffffffffffffffffffffffff85163b613325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106b3565b5081613175565b61317583838151156133415781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b39190613399565b60005b83811015613390578181015183820152602001613378565b50506000910152565b60208152600082518060208401526133b8816040850160208701613375565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461340e57600080fd5b919050565b6000806040838503121561342657600080fd5b61342f836133ea565b946020939093013593505050565b60008083601f84011261344f57600080fd5b50813567ffffffffffffffff81111561346757600080fd5b6020830191508360208260051b850101111561348257600080fd5b9250929050565b6000806000806040858703121561349f57600080fd5b843567ffffffffffffffff808211156134b757600080fd5b6134c38883890161343d565b909650945060208701359150808211156134dc57600080fd5b506134e98782880161343d565b95989497509550505050565b6000806040838503121561350857600080fd5b50508035926020909101359150565b60008060006060848603121561352c57600080fd5b613535846133ea565b9250613543602085016133ea565b9150604084013590509250925092565b60006020828403121561356557600080fd5b5035919050565b6000806040838503121561357f57600080fd5b8235915061358f602084016133ea565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561360e5761360e613598565b604052919050565b6000602080838503121561362957600080fd5b823567ffffffffffffffff8082111561364157600080fd5b818501915085601f83011261365557600080fd5b81358181111561366757613667613598565b8060051b91506136788483016135c7565b818152918301840191848101908884111561369257600080fd5b938501935b838510156136b7576136a8856133ea565b82529385019390850190613697565b98975050505050505050565b6000602082840312156136d557600080fd5b610b2a826133ea565b600082601f8301126136ef57600080fd5b813567ffffffffffffffff81111561370957613709613598565b61373a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016135c7565b81815284602083860101111561374f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561378557600080fd5b61378e876133ea565b9550602087013567ffffffffffffffff808211156137ab57600080fd5b6137b78a838b016136de565b965060408901359150808211156137cd57600080fd5b506137da89828a016136de565b9450506137e9606088016133ea565b92506080870135915060a087013590509295509295509295565b60008060006040848603121561381857600080fd5b613821846133ea565b9250602084013567ffffffffffffffff8082111561383e57600080fd5b818601915086601f83011261385257600080fd5b81358181111561386157600080fd5b87602082850101111561387357600080fd5b6020830194508093505050509250925092565b6000806040838503121561389957600080fd5b6138a2836133ea565b915061358f602084016133ea565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261391457600080fd5b83018035915067ffffffffffffffff82111561392f57600080fd5b60200191503681900382131561348257600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139a4576139a4613944565b5060010190565b808201808211156105c9576105c9613944565b6000602082840312156139d057600080fd5b815160ff81168114610b2a57600080fd5b80820281158282048414176105c9576105c9613944565b600082613a2e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215613a4557600080fd5b81518015158114610b2a57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b818103818111156105c9576105c9613944565b600181811c90821680613aab57607f821691505b602082108103613ae4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008251613afc818460208701613375565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613b3e816017850160208801613375565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613b7b816028840160208801613375565b01602801949350505050565b7f53696d706c65426c61636b6c6973743a206163636f756e742000000000000000815260008251613bbf816019850160208701613375565b7f20697320626c61636b6c697374656400000000000000000000000000000000006019939091019283015250602801919050565b601f82111561146557600081815260208120601f850160051c81016020861015613c1a5750805b601f850160051c820191505b81811015613c3957828155600101613c26565b505050505050565b815167ffffffffffffffff811115613c5b57613c5b613598565b613c6f81613c698454613a97565b84613bf3565b602080601f831160018114613cc25760008415613c8c5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613c39565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613d0f57888601518255948401946001909101908401613cf0565b5085821015613d4b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600081613d6a57613d6a613944565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122064af76982aadcbc56c712bf7d0123c33a0e7c2e4c984f5079edfc173d4f696c464736f6c634300081100330de7f2b0af5ab1aa4eca2b133cdee828bdcfefa98e4927fa304b2ad002ca6eb300000000000000000000000072c232d56542ba082592dee7c77b1c6cfa758bcd000000000000000000000000d7a586ce5250befab2cc2239f7226b9602536e6a