87.2k txs
1.02m calls
constructor
constructor(address _buyTaxReceiver, address _sellTaxReceiver)
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
BLACKLIST
viewfunction BLACKLIST() view returns (bytes32)
buyTaxReceiver
viewfunction buyTaxReceiver() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
INTERN_SYSTEM
viewfunction INTERN_SYSTEM() view returns (bytes32)
isBlacklisted
viewfunction isBlacklisted(address account) view returns (bool)
mainPair
viewfunction mainPair() view returns (address)
MINT
viewfunction MINT() view returns (bytes32)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
PRECISION
viewfunction PRECISION() view returns (uint256)
sellTaxReceiver
viewfunction sellTaxReceiver() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
swapBuyTaxRatio
viewfunction swapBuyTaxRatio() view returns (uint256)
swapSellTaxRatio
viewfunction swapSellTaxRatio() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
addToBlacklist
nonpayablefunction addToBlacklist(address account)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(uint256 amount)
burnFrom
nonpayablefunction burnFrom(address account_, uint256 amount_)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
mint
nonpayablefunction mint(address account_, uint256 amount_)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
removeFromBlacklist
nonpayablefunction removeFromBlacklist(address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setMainPair
nonpayablefunction setMainPair(address _pair)
setSwapTaxRatio
nonpayablefunction setSwapTaxRatio(uint256 _swapBuyTaxRatio, uint256 _swapSellTaxRatio)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BlacklistUpdated
event BlacklistUpdated(address indexed account, bool isBlacklisted)
FeeRatioChanged
event FeeRatioChanged(uint256 _swapBuyTaxRatio, uint256 _swapSellTaxRatio)
FeeTaken
event FeeTaken(address indexed sender, address indexed receiver, uint256 amount, uint256 fee)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
creation bytecode
0x6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140908152505f600a556101f4600b5534801562000043575f80fd5b5060405162004ec838038062004ec8833981810160405281019062000069919062000698565b6040518060400160405280600481526020017f5553444100000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f55534441000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f55534441000000000000000000000000000000000000000000000000000000008152506012826003908162000155919062000941565b50816004908162000167919062000941565b508060ff1660808160ff16815250505050505f4690505f838051906020012090505f838051906020012090505f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260e081815250508161010081815250508360c08181525050620001e38184846200040e60201b60201c565b60a08181525050806101208181525050505050505050506200022e7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba5f801b6200044e60201b60201c565b620002425f801b33620004af60201b60201c565b508160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002f77f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f2725f801b6200044e60201b60201c565b620003297f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f27233620004af60201b60201c565b506200037d7f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f27260085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620004af60201b60201c565b50620003d17f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f27260095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620004af60201b60201c565b50620004067fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c5f801b6200044e60201b60201c565b505062000abc565b5f8046905084848483306040516020016200042e95949392919062000a61565b604051602081830303815290604052805190602001209150509392505050565b5f6200046083620005ab60201b60201c565b90508160065f8581526020019081526020015f20600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b5f620004c28383620005c860201b60201c565b620005a157600160065f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200053d6200062c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620005a5565b5f90505b92915050565b5f60065f8381526020019081526020015f20600101549050919050565b5f60065f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620006628262000637565b9050919050565b620006748162000656565b81146200067f575f80fd5b50565b5f81519050620006928162000669565b92915050565b5f8060408385031215620006b157620006b062000633565b5b5f620006c08582860162000682565b9250506020620006d38582860162000682565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200075957607f821691505b6020821081036200076f576200076e62000714565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000796565b620007df868362000796565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000829620008236200081d84620007f7565b62000800565b620007f7565b9050919050565b5f819050919050565b620008448362000809565b6200085c620008538262000830565b848454620007a2565b825550505050565b5f90565b6200087262000864565b6200087f81848462000839565b505050565b5b81811015620008a6576200089a5f8262000868565b60018101905062000885565b5050565b601f821115620008f557620008bf8162000775565b620008ca8462000787565b81016020851015620008da578190505b620008f2620008e98562000787565b83018262000884565b50505b505050565b5f82821c905092915050565b5f620009175f1984600802620008fa565b1980831691505092915050565b5f62000931838362000906565b9150826002028217905092915050565b6200094c82620006dd565b67ffffffffffffffff811115620009685762000967620006e7565b5b62000974825462000741565b62000981828285620008aa565b5f60209050601f831160018114620009b7575f8415620009a2578287015190505b620009ae858262000924565b86555062000a1d565b601f198416620009c78662000775565b5f5b82811015620009f057848901518255600182019150602085019450602081019050620009c9565b8683101562000a10578489015162000a0c601f89168262000906565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b62000a398162000a25565b82525050565b62000a4a81620007f7565b82525050565b62000a5b8162000656565b82525050565b5f60a08201905062000a765f83018862000a2e565b62000a85602083018762000a2e565b62000a94604083018662000a2e565b62000aa3606083018562000a3f565b62000ab2608083018462000a50565b9695505050505050565b60805160a05160c05160e0516101005161012051610140516143ba62000b0e5f395f61238f01525f61188901525f6118cb01525f6118aa01525f61183601525f61185d01525f610b2a01526143ba5ff3fe608060405234801561000f575f80fd5b5060043610610230575f3560e01c806379cc67901161012e578063b24e145c116100b6578063de1be77a1161007a578063de1be77a146106c4578063f30e85bc146106e2578063f6a904db146106fe578063fe4de3ae1461071c578063fe575a871461073a57610230565b8063b24e145c14610620578063c8b0cf681461063e578063d505accf1461065c578063d547741f14610678578063dd62ed3e1461069457610230565b806395d89b41116100fd57806395d89b4114610566578063a217fddf14610584578063a457c2d7146105a2578063a9059cbb146105d2578063aaf5eb681461060257610230565b806379cc6790146104cc5780637ecebe00146104e857806385af30c51461051857806391d148541461053657610230565b80633644e515116101bc57806342966c681161018057806342966c681461042c57806344337ea114610448578063537df3b61461046457806356a2187c1461048057806370a082311461049c57610230565b80633644e5151461038857806336568abe146103a657806339509351146103c25780633e36f4c7146103f257806340c10f191461041057610230565b80631f9bbe20116102035780631f9bbe20146102d057806323b872dd146102ee578063248a9ca31461031e5780632f2ff15d1461034e578063313ce5671461036a57610230565b806301ffc9a71461023457806306fdde0314610264578063095ea7b31461028257806318160ddd146102b2575b5f80fd5b61024e60048036038101906102499190612f97565b61076a565b60405161025b9190612fdc565b60405180910390f35b61026c6107e3565b604051610279919061307f565b60405180910390f35b61029c6004803603810190610297919061312c565b610873565b6040516102a99190612fdc565b60405180910390f35b6102ba610961565b6040516102c79190613179565b60405180910390f35b6102d861096a565b6040516102e591906131aa565b60405180910390f35b610308600480360381019061030391906131c3565b61098e565b6040516103159190612fdc565b60405180910390f35b6103386004803603810190610333919061323d565b610ae8565b60405161034591906131aa565b60405180910390f35b61036860048036038101906103639190613268565b610b05565b005b610372610b27565b60405161037f91906132c1565b60405180910390f35b610390610b4e565b60405161039d91906131aa565b60405180910390f35b6103c060048036038101906103bb9190613268565b610b5c565b005b6103dc60048036038101906103d7919061312c565b610bd7565b6040516103e99190612fdc565b60405180910390f35b6103fa610cc5565b60405161040791906131aa565b60405180910390f35b61042a6004803603810190610425919061312c565b610ce9565b005b610446600480360381019061044191906132da565b610d60565b005b610462600480360381019061045d9190613305565b610d6d565b005b61047e60048036038101906104799190613305565b610ea3565b005b61049a60048036038101906104959190613330565b610f6a565b005b6104b660048036038101906104b19190613305565b611052565b6040516104c39190613179565b60405180910390f35b6104e660048036038101906104e1919061312c565b611097565b005b61050260048036038101906104fd9190613305565b6110a5565b60405161050f9190613179565b60405180910390f35b6105206110f2565b60405161052d919061337d565b60405180910390f35b610550600480360381019061054b9190613268565b611117565b60405161055d9190612fdc565b60405180910390f35b61056e61117b565b60405161057b919061307f565b60405180910390f35b61058c61120b565b60405161059991906131aa565b60405180910390f35b6105bc60048036038101906105b7919061312c565b611211565b6040516105c99190612fdc565b60405180910390f35b6105ec60048036038101906105e7919061312c565b6112ff565b6040516105f99190612fdc565b60405180910390f35b61060a611315565b6040516106179190613179565b60405180910390f35b61062861131b565b6040516106359190613179565b60405180910390f35b610646611321565b60405161065391906131aa565b60405180910390f35b610676600480360381019061067191906133c0565b611345565b005b610692600480360381019061068d9190613268565b611431565b005b6106ae60048036038101906106a9919061345d565b611453565b6040516106bb9190613179565b60405180910390f35b6106cc6114d5565b6040516106d99190613179565b60405180910390f35b6106fc60048036038101906106f79190613305565b6114db565b005b610706611569565b604051610713919061337d565b60405180910390f35b61072461158e565b604051610731919061337d565b60405180910390f35b610754600480360381019061074f9190613305565b6115b3565b6040516107619190612fdc565b60405180910390f35b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107dc57506107db826115e5565b5b9050919050565b6060600380546107f2906134c8565b80601f016020809104026020016040519081016040528092919081815260200182805461081e906134c8565b80156108695780601f1061084057610100808354040283529160200191610869565b820191905f5260205f20905b81548152906001019060200180831161084c57829003601f168201915b5050505050905090565b5f6108a57fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c6108a061164e565b611117565b156108e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108dc90613542565b60405180910390fd5b61090f7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c84611117565b1561094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906135aa565b60405180910390fd5b6109598383611655565b905092915050565b5f600254905090565b7f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f27281565b5f6109c07fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c6109bb61164e565b611117565b15610a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f790613542565b60405180910390fd5b610a2a7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c85611117565b15610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190613612565b60405180910390fd5b610a947fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c84611117565b15610ad4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acb9061367a565b60405180910390fd5b610adf84848461166b565b90509392505050565b5f60065f8381526020019081526020015f20600101549050919050565b610b0e82610ae8565b610b1781611731565b610b218383611745565b50505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f610b5761182f565b905090565b610b6461164e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610bc8576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd282826118f6565b505050565b5f610c097fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c610c0461164e565b611117565b15610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090613542565b60405180910390fd5b610c737fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c84611117565b15610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa906135aa565b60405180910390fd5b610cbd83836119e0565b905092915050565b7ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba81565b610d137ffdf81848136595c31bb5f76217767372bc4bf906663038eb38381131ea27ecba33611117565b610d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613708565b60405180910390fd5b610d5c8282611a80565b5050565b610d6a3382611c0c565b50565b610d795f801b33611117565b610db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daf90613770565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906137d8565b60405180910390fd5b610e507fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c82611745565b508073ffffffffffffffffffffffffffffffffffffffff167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac6001604051610e989190612fdc565b60405180910390a250565b610eaf5f801b33611117565b610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590613770565b60405180910390fd5b610f187fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c826118f6565b508073ffffffffffffffffffffffffffffffffffffffff167f6a12b3df6cba4203bd7fd06b816789f87de8c594299aed5717ae070fac781bac5f604051610f5f9190612fdc565b60405180910390a250565b610f765f801b33611117565b610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613770565b60405180910390fd5b6127108211158015610fc8575061271081105b611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613840565b60405180910390fd5b81600a8190555080600b819055507fbd1c2baf15ce9efeda58ba0e407ce12e928eb6105bde1c2df27e8d1aea705447828260405161104692919061385e565b60405180910390a15050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110a18282611db2565b5050565b5f6110eb60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20611e30565b9050919050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60065f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60606004805461118a906134c8565b80601f01602080910402602001604051908101604052809291908181526020018280546111b6906134c8565b80156112015780601f106111d857610100808354040283529160200191611201565b820191905f5260205f20905b8154815290600101906020018083116111e457829003601f168201915b5050505050905090565b5f801b81565b5f6112437fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c61123e61164e565b611117565b15611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a90613542565b60405180910390fd5b6112ad7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c84611117565b156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e4906135aa565b60405180910390fd5b6112f78383611e3c565b905092915050565b5f61130b338484611ef6565b6001905092915050565b61271081565b600a5481565b7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c81565b61136f7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c88611117565b156113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a6906138cf565b60405180910390fd5b6113d97fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c87611117565b15611419576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611410906135aa565b60405180910390fd5b61142887878787878787612349565b50505050505050565b61143a82610ae8565b61144381611731565b61144d83836118f6565b50505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600b5481565b6114e75f801b33611117565b611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613770565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6115de7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c83611117565b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f611661338484612488565b6001905092915050565b5f611677848484611ef6565b6117268433611721856040518060600160405280602881526020016143386028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264b9092919063ffffffff16565b612488565b600190509392505050565b6117428161173d61164e565b6126ad565b50565b5f6117508383611117565b61182557600160065f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506117c261164e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611829565b5f90505b92915050565b5f804690507f00000000000000000000000000000000000000000000000000000000000000008103611884577f00000000000000000000000000000000000000000000000000000000000000009150506118f3565b6118ef7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006126fe565b9150505b90565b5f6119018383611117565b156119d6575f60065f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061197361164e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a4600190506119da565b5f90505b92915050565b5f611a763384611a718560015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273c90919063ffffffff16565b612488565b6001905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590613937565b60405180910390fd5b611af95f8383612799565b611b0e8160025461273c90919063ffffffff16565b600281905550611b63815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273c90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c009190613179565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c71906139c5565b60405180910390fd5b611c85825f83612799565b611cee816040518060600160405280602281526020016142f0602291395f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264b9092919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d438160025461279e90919063ffffffff16565b6002819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da69190613179565b60405180910390a35050565b80611dbd8333611453565b1015611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df590613a53565b60405180910390fd5b5f81611e0a8433611453565b611e149190613a9e565b9050611e21833383612488565b611e2b8383611c0c565b505050565b5f815f01549050919050565b5f611eec3384611ee7856040518060600160405280602581526020016143606025913960015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264b9092919063ffffffff16565b612488565b6001905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90613b41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc990613bcf565b60405180910390fd5b611ffc7fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c84611117565b1561203c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203390613612565b60405180910390fd5b6120667fc88ef414e1d5ad1d458fdfa42b508737177470135860c2a2ce45583ce28f207c83611117565b156120a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209d9061367a565b60405180910390fd5b6120b083836127e7565b156123395760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121f8575f612710600a548361211b9190613bed565b6121259190613c5b565b90505f8111156121f257808261213b9190613a9e565b91506121698460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836128fd565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f916b8175cd5c46d919fd13bb22ffc701a10dec261c617873a53c55d45569a4e484846040516121e992919061385e565b60405180910390a35b50612338565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612337575f612710600b548361225e9190613bed565b6122689190613c5b565b90505f81111561233557808261227e9190613a9e565b91506122ac8460095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836128fd565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f916b8175cd5c46d919fd13bb22ffc701a10dec261c617873a53c55d45569a4e4848460405161232c92919061385e565b60405180910390a35b505b5b5b6123448383836128fd565b505050565b8342111561238c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238390613cd5565b60405180910390fd5b5f7f00000000000000000000000000000000000000000000000000000000000000008888886123ba8c612b86565b896040516020016123d096959493929190613cf3565b6040516020818303038152906040528051906020012090505f6123f282612be1565b90505f61240182878787612bfa565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246890613d9c565b60405180910390fd5b61247c8a8a8a612488565b50505050505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed90613e2a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90613eb8565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161263e9190613179565b60405180910390a3505050565b5f838311158290612692576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612689919061307f565b60405180910390fd5b505f83856126a09190613a9e565b9050809150509392505050565b6126b78282611117565b6126fa5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016126f1929190613ed6565b60405180910390fd5b5050565b5f80469050848484833060405160200161271c959493929190613efd565b604051602081830303815290604052805190602001209150509392505050565b5f80828461274a9190613f4e565b90508381101561278f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278690613fcb565b60405180910390fd5b8091505092915050565b505050565b5f6127df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061264b565b905092915050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561286b57506128697f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f27283611117565b155b806128f5575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156128f457506128f27f849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f27284611117565b155b5b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361296b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296290613b41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d090613bcf565b60405180910390fd5b6129e4838383612799565b612a4d81604051806060016040528060268152602001614312602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461264b9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612adc815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461273c90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b799190613179565b60405180910390a3505050565b5f8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050612bd081611e30565b9150612bdb81612c23565b50919050565b5f612bf3612bed61182f565b83612c40565b9050919050565b5f805f612c0987878787612c72565b91509150612c1681612d73565b8192505050949350505050565b6001815f015f828254612c369190613f4e565b9250508190555050565b5f8282604051602001612c5492919061405d565b60405160208183030381529060405280519060200120905092915050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0835f1c1115612caa575f600391509150612d6a565b601b8560ff1614158015612cc25750601c8560ff1614155b15612cd3575f600491509150612d6a565b5f6001878787876040515f8152602001604052604051612cf69493929190614093565b6020604051602081039080840390855afa158015612d16573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d62575f60019250925050612d6a565b805f92509250505b94509492505050565b5f6004811115612d8657612d856140d6565b5b816004811115612d9957612d986140d6565b5b0315612f3b5760016004811115612db357612db26140d6565b5b816004811115612dc657612dc56140d6565b5b03612e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dfd9061414d565b60405180910390fd5b60026004811115612e1a57612e196140d6565b5b816004811115612e2d57612e2c6140d6565b5b03612e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e64906141b5565b60405180910390fd5b60036004811115612e8157612e806140d6565b5b816004811115612e9457612e936140d6565b5b03612ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecb90614243565b60405180910390fd5b600480811115612ee757612ee66140d6565b5b816004811115612efa57612ef96140d6565b5b03612f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f31906142d1565b60405180910390fd5b5b50565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612f7681612f42565b8114612f80575f80fd5b50565b5f81359050612f9181612f6d565b92915050565b5f60208284031215612fac57612fab612f3e565b5b5f612fb984828501612f83565b91505092915050565b5f8115159050919050565b612fd681612fc2565b82525050565b5f602082019050612fef5f830184612fcd565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561302c578082015181840152602081019050613011565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61305182612ff5565b61305b8185612fff565b935061306b81856020860161300f565b61307481613037565b840191505092915050565b5f6020820190508181035f8301526130978184613047565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6130c88261309f565b9050919050565b6130d8816130be565b81146130e2575f80fd5b50565b5f813590506130f3816130cf565b92915050565b5f819050919050565b61310b816130f9565b8114613115575f80fd5b50565b5f8135905061312681613102565b92915050565b5f806040838503121561314257613141612f3e565b5b5f61314f858286016130e5565b925050602061316085828601613118565b9150509250929050565b613173816130f9565b82525050565b5f60208201905061318c5f83018461316a565b92915050565b5f819050919050565b6131a481613192565b82525050565b5f6020820190506131bd5f83018461319b565b92915050565b5f805f606084860312156131da576131d9612f3e565b5b5f6131e7868287016130e5565b93505060206131f8868287016130e5565b925050604061320986828701613118565b9150509250925092565b61321c81613192565b8114613226575f80fd5b50565b5f8135905061323781613213565b92915050565b5f6020828403121561325257613251612f3e565b5b5f61325f84828501613229565b91505092915050565b5f806040838503121561327e5761327d612f3e565b5b5f61328b85828601613229565b925050602061329c858286016130e5565b9150509250929050565b5f60ff82169050919050565b6132bb816132a6565b82525050565b5f6020820190506132d45f8301846132b2565b92915050565b5f602082840312156132ef576132ee612f3e565b5b5f6132fc84828501613118565b91505092915050565b5f6020828403121561331a57613319612f3e565b5b5f613327848285016130e5565b91505092915050565b5f806040838503121561334657613345612f3e565b5b5f61335385828601613118565b925050602061336485828601613118565b9150509250929050565b613377816130be565b82525050565b5f6020820190506133905f83018461336e565b92915050565b61339f816132a6565b81146133a9575f80fd5b50565b5f813590506133ba81613396565b92915050565b5f805f805f805f60e0888a0312156133db576133da612f3e565b5b5f6133e88a828b016130e5565b97505060206133f98a828b016130e5565b965050604061340a8a828b01613118565b955050606061341b8a828b01613118565b945050608061342c8a828b016133ac565b93505060a061343d8a828b01613229565b92505060c061344e8a828b01613229565b91505092959891949750929550565b5f806040838503121561347357613472612f3e565b5b5f613480858286016130e5565b9250506020613491858286016130e5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806134df57607f821691505b6020821081036134f2576134f161349b565b5b50919050565b7f43616c6c657220697320626c61636b6c697374656400000000000000000000005f82015250565b5f61352c601583612fff565b9150613537826134f8565b602082019050919050565b5f6020820190508181035f83015261355981613520565b9050919050565b7f5370656e64657220697320626c61636b6c6973746564000000000000000000005f82015250565b5f613594601683612fff565b915061359f82613560565b602082019050919050565b5f6020820190508181035f8301526135c181613588565b9050919050565b7f53656e64657220697320626c61636b6c697374656400000000000000000000005f82015250565b5f6135fc601583612fff565b9150613607826135c8565b602082019050919050565b5f6020820190508181035f830152613629816135f0565b9050919050565b7f526563697069656e7420697320626c61636b6c697374656400000000000000005f82015250565b5f613664601883612fff565b915061366f82613630565b602082019050919050565b5f6020820190508181035f83015261369181613658565b9050919050565b7f5661756c744f776e65643a2063616c6c6572206973206e6f74207468652056615f8201527f756c740000000000000000000000000000000000000000000000000000000000602082015250565b5f6136f2602383612fff565b91506136fd82613698565b604082019050919050565b5f6020820190508181035f83015261371f816136e6565b9050919050565b7f43616c6c6572206973206e6f742061646d696e000000000000000000000000005f82015250565b5f61375a601383612fff565b915061376582613726565b602082019050919050565b5f6020820190508181035f8301526137878161374e565b9050919050565b7f43616e6e6f7420626c61636b6c697374207a65726f20616464726573730000005f82015250565b5f6137c2601d83612fff565b91506137cd8261378e565b602082019050919050565b5f6020820190508181035f8301526137ef816137b6565b9050919050565b7f74617820746f6f206869676821000000000000000000000000000000000000005f82015250565b5f61382a600d83612fff565b9150613835826137f6565b602082019050919050565b5f6020820190508181035f8301526138578161381e565b9050919050565b5f6040820190506138715f83018561316a565b61387e602083018461316a565b9392505050565b7f4f776e657220697320626c61636b6c69737465640000000000000000000000005f82015250565b5f6138b9601483612fff565b91506138c482613885565b602082019050919050565b5f6020820190508181035f8301526138e6816138ad565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f613921601f83612fff565b915061392c826138ed565b602082019050919050565b5f6020820190508181035f83015261394e81613915565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139af602183612fff565b91506139ba82613955565b604082019050919050565b5f6020820190508181035f8301526139dc816139a3565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f613a3d602483612fff565b9150613a48826139e3565b604082019050919050565b5f6020820190508181035f830152613a6a81613a31565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aa8826130f9565b9150613ab3836130f9565b9250828203905081811115613acb57613aca613a71565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b2b602583612fff565b9150613b3682613ad1565b604082019050919050565b5f6020820190508181035f830152613b5881613b1f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613bb9602383612fff565b9150613bc482613b5f565b604082019050919050565b5f6020820190508181035f830152613be681613bad565b9050919050565b5f613bf7826130f9565b9150613c02836130f9565b9250828202613c10816130f9565b91508282048414831517613c2757613c26613a71565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613c65826130f9565b9150613c70836130f9565b925082613c8057613c7f613c2e565b5b828204905092915050565b7f45524332305065726d69743a206578706972656420646561646c696e650000005f82015250565b5f613cbf601d83612fff565b9150613cca82613c8b565b602082019050919050565b5f6020820190508181035f830152613cec81613cb3565b9050919050565b5f60c082019050613d065f83018961319b565b613d13602083018861336e565b613d20604083018761336e565b613d2d606083018661316a565b613d3a608083018561316a565b613d4760a083018461316a565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e617475726500005f82015250565b5f613d86601e83612fff565b9150613d9182613d52565b602082019050919050565b5f6020820190508181035f830152613db381613d7a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613e14602483612fff565b9150613e1f82613dba565b604082019050919050565b5f6020820190508181035f830152613e4181613e08565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ea2602283612fff565b9150613ead82613e48565b604082019050919050565b5f6020820190508181035f830152613ecf81613e96565b9050919050565b5f604082019050613ee95f83018561336e565b613ef6602083018461319b565b9392505050565b5f60a082019050613f105f83018861319b565b613f1d602083018761319b565b613f2a604083018661319b565b613f37606083018561316a565b613f44608083018461336e565b9695505050505050565b5f613f58826130f9565b9150613f63836130f9565b9250828201905080821115613f7b57613f7a613a71565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613fb5601b83612fff565b9150613fc082613f81565b602082019050919050565b5f6020820190508181035f830152613fe281613fa9565b9050919050565b5f81905092915050565b7f19010000000000000000000000000000000000000000000000000000000000005f82015250565b5f614027600283613fe9565b915061403282613ff3565b600282019050919050565b5f819050919050565b61405761405282613192565b61403d565b82525050565b5f6140678261401b565b91506140738285614046565b6020820191506140838284614046565b6020820191508190509392505050565b5f6080820190506140a65f83018761319b565b6140b360208301866132b2565b6140c0604083018561319b565b6140cd606083018461319b565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f45434453413a20696e76616c6964207369676e617475726500000000000000005f82015250565b5f614137601883612fff565b915061414282614103565b602082019050919050565b5f6020820190508181035f8301526141648161412b565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e677468005f82015250565b5f61419f601f83612fff565b91506141aa8261416b565b602082019050919050565b5f6020820190508181035f8301526141cc81614193565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f61422d602283612fff565b9150614238826141d3565b604082019050919050565b5f6020820190508181035f83015261425a81614221565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c5f8201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142bb602283612fff565b91506142c682614261565b604082019050919050565b5f6020820190508181035f8301526142e8816142af565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122091129854c2554a2b0289d6649bb834039048c88702835117f9810168a05bca7b64736f6c63430008180033000000000000000000000000a0ee7fe1143624e998bfe1a3523d6519c7b48f65000000000000000000000000a0ee7fe1143624e998bfe1a3523d6519c7b48f65