[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "Tier", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "basePrice", "type": "uint256" }, { "internalType": "uint256", "name": "reserve", "type": "uint256" }, { "internalType": "uint256", "name": "appRate", "type": "uint256" }, { "internalType": "uint256", "name": "boostingRate", "type": "uint256" }, { "internalType": "uint256", "name": "appMax", "type": "uint256" }, { "internalType": "uint256", "name": "totalSold", "type": "uint256" }, { "internalType": "uint256", "name": "tax", "type": "uint256" }, { "internalType": "uint256", "name": "buffer", "type": "uint256" }, { "internalType": "uint256", "name": "txLimit", "type": "uint256" }, { "internalType": "uint256", "name": "gifts", "type": "uint256" }, { "internalType": "uint256", "name": "volume", "type": "uint256" }, { "internalType": "uint256", "name": "buy", "type": "uint256" }, { "internalType": "uint256", "name": "sell", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "TreaseryWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "owners", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" } ], "name": "buyEstimate", "outputs": [ { "internalType": "uint256", "name": "cPrice", "type": "uint256" }, { "internalType": "uint256", "name": "tPrice", "type": "uint256" }, { "internalType": "uint256", "name": "taxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "bufertax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dappWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "executeContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" } ], "name": "getHolders", "outputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "holder", "outputs": [ { "internalType": "bool", "name": "isHolder", "type": "bool" }, { "internalType": "uint256", "name": "holderByIndex", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "holders", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treaseryW", "type": "address" }, { "internalType": "address", "name": "_dappWallet", "type": "address" }, { "internalType": "address", "name": "_ref", "type": "address" }, { "internalType": "address", "name": "_initer", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256[]", "name": "_tiers1", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_tiers2", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_tiers3", "type": "uint256[]" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "isValidSignature", "outputs": [ { "internalType": "bytes4", "name": "magicValue", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "isValidSigner", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastUpdate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "receivedTokenId", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "referrence", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" } ], "name": "sell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tier", "type": "uint256" }, { "internalType": "uint256", "name": "_tAmount", "type": "uint256" } ], "name": "sellEstimate", "outputs": [ { "internalType": "uint256", "name": "cPrice", "type": "uint256" }, { "internalType": "uint256", "name": "tPrice", "type": "uint256" }, { "internalType": "uint256", "name": "taxAmount", "type": "uint256" }, { "internalType": "uint256", "name": "bufertax", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_duration", "type": "uint256" }, { "internalType": "bool", "name": "withdraw", "type": "bool" } ], "name": "subscribe", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "subscriber", "outputs": [ { "internalType": "uint256", "name": "startingAt", "type": "uint256" }, { "internalType": "uint256", "name": "buyingPrice", "type": "uint256" }, { "internalType": "uint256", "name": "claimed", "type": "uint256" }, { "internalType": "uint256", "name": "timeline", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalClaimed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "updatePeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_update", "type": "uint256[]" }, { "internalType": "uint256", "name": "_tier", "type": "uint256" } ], "name": "updateTier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_from", "type": "uint256" }, { "internalType": "uint256", "name": "_to", "type": "uint256" }, { "internalType": "uint256", "name": "_eAmount", "type": "uint256" } ], "name": "upgradeTier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treaseryW", "type": "address" }, { "internalType": "uint256", "name": "_claimtax", "type": "uint256" }, { "internalType": "uint256", "name": "defaultclaim", "type": "uint256" }, { "internalType": "uint256", "name": "_initerShare", "type": "uint256" }, { "internalType": "uint256", "name": "_swaptax", "type": "uint256" }, { "internalType": "uint256", "name": "_ownerFee", "type": "uint256" }, { "internalType": "uint256", "name": "_initerFee", "type": "uint256" }, { "internalType": "uint256", "name": "_traderFee", "type": "uint256" }, { "internalType": "uint256", "name": "_claimperiod", "type": "uint256" }, { "internalType": "uint256", "name": "_claimlimit", "type": "uint256" }, { "internalType": "uint256", "name": "_refFee", "type": "uint256" } ], "name": "upgradeUtilities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052633b9aca006007556298968060105562278d006011556301312d006013556302faf0806014556301312d006015556301312d006016556318701a80601755620f424060195534801561005557600080fd5b50614a87806100656000396000f3fe6080604052600436106101c35760003560e01c8062fdd58e146101cf57806301ffc9a71461021757806303db7a80146102475780630b12323f1461027f5780630e89341c146102e1578063150b7a021461030f5780631626ba7e146103485780632e69110e146103685780632eb2c2d614610457578063382b43fb146104795780634e1273f41461048c5780634e71d92d146104b9578063523e3260146104ce5780635511ead0146104ee5780635ae33a401461054a5780635bc05e9a1461056a5780637d6495ff1461058a57806380950f15146105aa57806387986827146105bd5780638da5cb5b146105dd57806392707869146105f2578063a22cb4651461061f578063a59ac6dd1461063f578063a83627de14610652578063ab3587cd14610668578063aed6176e14610688578063aedb1c8f146106a8578063aee9adc7146106c8578063bc197c81146106e8578063c046371114610714578063c1f18cc61461072a578063d54ad2a11461074a578063d79875eb14610760578063e985e9c514610780578063f23a6e61146107bb578063f242432a146107e7578063f5a6b04714610807578063f75b8c5f14610827578063fc0c546a1461083d57600080fd5b366101ca57005b600080fd5b3480156101db57600080fd5b506102046101ea366004613ada565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b34801561022357600080fd5b50610237610232366004613b1c565b610875565b604051901515815260200161020e565b34801561025357600080fd5b50600454610267906001600160a01b031681565b6040516001600160a01b03909116815260200161020e565b34801561028b57600080fd5b506102c161029a366004613b39565b600f6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161020e565b3480156102ed57600080fd5b506103026102fc366004613b56565b50606090565b60405161020e9190613bbf565b34801561031b57600080fd5b5061032f61032a366004613c87565b610918565b6040516001600160e01b0319909116815260200161020e565b34801561035457600080fd5b5061032f610363366004613ce6565b610935565b34801561037457600080fd5b506103ef610383366004613b56565b600c60205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508e565b604080519e8f5260208f019d909d529b8d019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e08801526101008701526101208601526101408501526101608401526101808301526101a08201526101c00161020e565b34801561046357600080fd5b50610477610472366004613db8565b61096c565b005b610477610487366004613e86565b610c6d565b34801561049857600080fd5b506104ac6104a7366004613eb2565b61121c565b60405161020e9190613f1d565b3480156104c557600080fd5b5061047761135c565b3480156104da57600080fd5b5061032f6104e9366004613f61565b611705565b3480156104fa57600080fd5b50610533610509366004613fb5565b600b6020908152600092835260408084209091529082529020805460019091015460ff9091169082565b60408051921515835260208301919091520161020e565b34801561055657600080fd5b506102c1610565366004613fe5565b611726565b34801561057657600080fd5b50600354610267906001600160a01b031681565b34801561059657600080fd5b506104776105a5366004614007565b611969565b6104776105b8366004614033565b611d26565b3480156105c957600080fd5b506104776105d836600461411f565b611ea3565b3480156105e957600080fd5b50610267611f1d565b3480156105fe57600080fd5b5061020461060d366004613b56565b6000908152600e602052604090205490565b34801561062b57600080fd5b5061047761063a36600461419a565b611fb3565b61047761064d3660046141c6565b61201f565b34801561065e57600080fd5b5061020460115481565b34801561067457600080fd5b506102c1610683366004613fe5565b61241c565b34801561069457600080fd5b506102676106a3366004613fe5565b6125b8565b3480156106b457600080fd5b50600254610267906001600160a01b031681565b3480156106d457600080fd5b506104776106e33660046141fb565b6125f0565b3480156106f457600080fd5b5061032f6107033660046142c5565b63bc197c8160e01b95945050505050565b34801561072057600080fd5b5061020460085481565b34801561073657600080fd5b50600654610267906001600160a01b031681565b34801561075657600080fd5b50610204600a5481565b34801561076c57600080fd5b5061047761077b366004613fe5565b6127ba565b34801561078c57600080fd5b5061023761079b366004614372565b600160209081526000928352604080842090915290825290205460ff1681565b3480156107c757600080fd5b5061032f6107d63660046143a0565b63f23a6e6160e01b95945050505050565b3480156107f357600080fd5b50610477610802366004614408565b612d69565b34801561081357600080fd5b50600554610267906001600160a01b031681565b34801561083357600080fd5b5061020460095481565b34801561084957600080fd5b50610852612f3c565b604080519384526001600160a01b0390921660208401529082015260600161020e565b60006001600160e01b031982166343a1d1f560e11b14806108a657506001600160e01b03198216630271189760e51b145b806108c157506001600160e01b03198216630a85bd0160e11b145b806108dc57506001600160e01b031982166301ffc9a760e01b145b806108f757506001600160e01b03198216636cdb3d1360e11b145b8061091257506303a24d0760e21b6001600160e01b03198316145b92915050565b60006109243384612f54565b50630a85bd0160e11b949350505050565b60008061094a610943611f1d565b85856131b8565b905080156109625750630b135d3f60e11b9050610912565b5060009392505050565b336001600160a01b03891614806109a657506001600160a01b038816600090815260016020908152604080832033845290915290205460ff165b6109cb5760405162461bcd60e51b81526004016109c290614483565b60405180910390fd5b6001600160a01b0387166109f15760405162461bcd60e51b81526004016109c2906144a9565b848314610a3e5760405162461bcd60e51b815260206004820152601b60248201527a0d2c8e640d8cadccee8d040427a40ecc2d8eacae640d8cadccee8d602b1b60448201526064016109c2565b60005b85811015610b5157848482818110610a5b57610a5b6144d1565b905060200201356000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000898985818110610a9a57610a9a6144d1565b9050602002013581526020019081526020016000206000828254610abe91906144fd565b909155508590508482818110610ad657610ad66144d1565b905060200201356000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000898985818110610b1557610b156144d1565b9050602002013581526020019081526020016000206000828254610b399190614510565b90915550819050610b4981614523565b915050610a41565b50866001600160a01b0316886001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb89898989604051610ba5949392919061456e565b60405180910390a46001600160a01b0387163b15610c635760405163bc197c8160e01b808252906001600160a01b0389169063bc197c8190610bf99033908d908c908c908c908c908c908c906004016145be565b6020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190614622565b6001600160e01b03191614610c635760405162461bcd60e51b81526004016109c29061463f565b5050505050505050565b801515600003610eaf5760075460046000908152600c6020527f5b84bb9e0f5aa9cc45a8bb66468db5d4816d1e75ff86b5e1f1dd8d144dab809e546000805160206149f2833981519152549192610cd0929091610cca919061321a565b9061329c565b336000908152600f6020526040902060030154909150158015610d1657506004600052600c6020526000805160206149f283398151915254610d1290826132f4565b3410155b80610d325750336000908152600f602052604090206003015442115b610d6c5760405162461bcd60e51b815260206004820152600b60248201526a30b63932b0b23c9039bab160a91b60448201526064016109c2565b610d7642846132f4565b336000908152600f6020908152604080832060038101949094556000805160206149f283398151915254600185015542909355600080516020614a1283398151915290529081205460ff1615159003610e4a57336000818152600080516020614a12833981519152602090815260408220805460ff191660019081178255600080516020614a328339815191528054928201839055600e9093528101825591527fe089e86205f11ee5fe3bb1b54c970fa879600bbdbf04ff75b3572a27988477cc0180546001600160a01b03191690911790555b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e84573d6000803e3d6000fd5b50610e8f3482613351565b6004600052600c6020526000805160206149d2833981519152555061118d565b336000908152600080516020614a12833981519152602052604090205460ff1615156001148015610ef15750336000908152600f602052604090206003015442105b8015610f1c5750336000908152600f602052604090206003015462278d0090610f1a9042613351565b115b610f2557600080fd5b336000908152600f6020526040812060030154610f4c9062278d0090610cca904290613351565b336000908152600080516020614a12833981519152602081815260408320805460ff1916815560019081015460048552600e909252600080516020614a3283398151915280549596509194929392610fa491906144fd565b81548110610fb457610fb46144d1565b60009182526020808320909101546001600160a01b03168352828101939093526040909101812060019081019390935560049052600e9052600080516020614a3283398151915280549091611008916144fd565b81548110611018576110186144d1565b6000918252602080832090910154338352600080516020614a12833981519152909152604090912060010154600080516020614a3283398151915280546001600160a01b03909316929091908110611072576110726144d1565b600091825260208083209190910180546001600160a01b0319166001600160a01b03949094169390931790925560049052600e9052600080516020614a328339815191528054806110c5576110c5614668565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556004909152600c90526000805160206149d28339815191525481101561118b576004600052600c6020526000805160206149d28339815191525461112f9082613351565b6000805160206149d283398151915255336000818152600f60205260409020600101546108fc9061116190849061321a565b6040518115909202916000818181858888f19350505050158015611189573d6000803e3d6000fd5b505b505b60025460405163304f5e2560e01b8152336004820152600060248201526044810184905260806064820152600960848201526853756273637269626560b81b60a48201526001600160a01b039091169063304f5e259060c401600060405180830381600087803b15801561120057600080fd5b505af1158015611214573d6000803e3d6000fd5b505050505050565b606083821461126b5760405162461bcd60e51b815260206004820152601b60248201527a0deeedccae4e640d8cadccee8d040427a40d2c8e640d8cadccee8d602b1b60448201526064016109c2565b836001600160401b0381111561128357611283613bd2565b6040519080825280602002602001820160405280156112ac578160200160208202803683370190505b50905060005b84811015611353576000808787848181106112cf576112cf6144d1565b90506020020160208101906112e49190613b39565b6001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110611318576113186144d1565b90506020020135815260200190815260200160002054828281518110611340576113406144d1565b60209081029190910101526001016112b2565b50949350505050565b60115460085461136c90426144fd565b1015801561137d5750600a54601054115b6113bc5760405162461bcd60e51b815260206004820152601060248201526f3832b934b7b21034b9b73a1037bb32b960811b60448201526064016109c2565b60016000908152600c6020527fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b62546009549091908211156114265761141e600754610cca6018546114186009548761335190919063ffffffff16565b9061321a565b600983905590505b6276a7006008544261143891906144fd565b1015801561144857506009548211155b1561146b57611468600754610cca6019548561321a90919063ffffffff16565b90505b6000600a5460105461147d91906144fd565b90508115611700578181111561163e576004546001600160a01b0316156115755760006114bb600754610cca6012548661321a90919063ffffffff16565b6004546001600160a01b0316600090815260208181526040808320600184529091529020549091506114ed90826132f4565b6004546001600160a01b03166000908152602081815260408083206001845290915290205561154a61151f8483613351565b6003546001600160a01b031660009081526020818152604080832060018452909152902054906132f4565b6003546001600160a01b031660009081526020818152604080832060018452909152902055506115ca565b6003546001600160a01b0316600090815260208181526040808320600184529091529020546115a490836132f4565b6003546001600160a01b0316600090815260208181526040808320600184529091529020555b6005546001600160a01b0316600090815260208181526040808320600184529091529020546115f990836132f4565b6005546001600160a01b031660009081526020818152604080832060018452909152812091909155600a8054849290611633908490614510565b909155506116fb9050565b6003546001600160a01b03166000908152602081815260408083206001845290915290205461166d90826132f4565b6003546001600160a01b039081166000908152602081815260408083206001808552908352818420959095556005549093168252818152828220938252929092529020546116bb90826132f4565b6005546001600160a01b031660009081526020818152604080832060018452909152812091909155600a80548392906116f5908490614510565b90915550505b426008555b505050565b6000611710846133ad565b156109625750630291f19360e51b5b9392505050565b6000828152600c602052604081208054600690910154909182918190815b868110156117db576000888152600c6020526040812060050154831161177b576000898152600c602052604090206004015461178e565b6000898152600c60205260409020600301545b6007549091506117ac90610cca6117a58483614510565b8a9061321a565b96506117b88787614510565b95506117c5600184614510565b92505080806117d390614523565b915050611744565b508493508360005b878110156118bc576000898152600c602052604081206005015484101561181b5760008a8152600c602052604090206004015461182e565b60008a8152600c60205260409020600301545b9050836001146118585760075461185390610cca61184c8285613351565b869061321a565b61186b565b60008a8152600c60205260409020600101545b92508360011461187b578261188f565b60075461188f90610cca61184c8285613351565b6118999088614510565b96506118a66001856144fd565b93505080806118b490614523565b9150506117e3565b506118c781866144fd565b6007805460008b8152600c60205260409020909101549196506118ef91610cca90889061321a565b6000898152600c602052604090206006015490945015611959576007546000898152600c60205260409020600601546119549161192c919061321a565b60008a8152600c6020526040902060080154610cca9061194d908b9061321a565b889061321a565b61195c565b60005b9250505092959194509250565b8260001080156119795750600483105b8061198f575081600010801561198f5750600482105b61199857600080fd5b81831015611b5f5760006119c16119af85856144fd565b6119ba90600a614762565b839061321a565b905060006119e0600754610cca6013548561321a90919063ffffffff16565b33600090815260208181526040808320898452909152902054909150611a0683836132f4565b1115611a245760405162461bcd60e51b81526004016109c29061476e565b611a50611a3183836132f4565b336000908152602081815260408083208a845290915290205490613351565b3360009081526020818152604080832089845282528083209390935530825281815282822088835290522054611a8690836132f4565b306000908152602081815260408083208984528252808320939093556005546001600160a01b0316825281815282822088835290522054611ac790826132f4565b6005546001600160a01b031660009081526020818152604080832089845282528083209390935533825281815282822087835290522054611b0890846132f4565b3360009081526020818152604080832088845282528083209390935530825281815282822087835290522054611b3e9084613351565b30600090815260208181526040808320888452909152902055506117009050565b6000611b80611b6e84866144fd565b611b7990600a614762565b839061329c565b90506000611b9f600754610cca6013548661321a90919063ffffffff16565b336000908152602081815260408083208984529091529020549091508211801590611bca5750816000105b611be65760405162461bcd60e51b81526004016109c29061476e565b6005546001600160a01b0316600090815260208181526040808320878452909152902054611c1490826132f4565b6005546001600160a01b0316600090815260208181526040808320888452909152902055611c64611c4582856144fd565b33600090815260208181526040808320898452909152902054906132f4565b3360009081526020818152604080832088845282528083209390935530825281815282822087835290522054611c9a9084613351565b3060009081526020818152604080832088845282528083209390935533825281815282822088835290522054611cd09083613351565b3360009081526020818152604080832089845282528083209390935530825281815282822088835290522054611d0690836132f4565b306000908152602081815260408083208984529091529020555050505050565b601a5460ff1615611d6a5760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b60448201526064016109c2565b601a805460ff19166001908117909155600580546001600160a01b03808f166001600160a01b031992831617909255600380548e8416908316179055600680548d841690831617905560048054928c1692909116919091179055604080516020810190915260008152611de4913091633b9aca00906133d2565b611e043060026305f5e100604051806020016040528060008152506133d2565b600280546001600160a01b03191633179055426008558181600081611e2b57611e2b6144d1565b6004600052600c60209081520291909101356000805160206149f28339815191525550611e5a868660016125f0565b611e66848460026125f0565b611e72828260036125f0565b6001600160a01b03881615611e9657611e8d8860018961201f565b630bebc2006012555b5050505050505050505050565b6002546001600160a01b03163314611ecd5760405162461bcd60e51b81526004016109c2906147a0565b600580546001600160a01b0319166001600160a01b039c909c169b909b17909a55601898909855601996909655601294909455601491909155601555601791909155601355601155601055601655565b600080600080611f2b612f3c565b925092509250468314611f42576000935050505090565b6040516331a9108f60e11b8152600481018290526001600160a01b03831690636352211e90602401602060405180830381865afa158015611f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fab91906147c6565b935050505090565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60008060008061202f8686611726565b935093509350935061204d81836120469190614510565b84906132f4565b34101580156120745750306000908152602081815260408083208984529091529020548511155b801561209157506000868152600c60205260409020600901548511155b80156120ad5750336000908152600d602052604090205460ff16155b6120f25760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e74206c697175696469747960501b60448201526064016109c2565b85600103612181578461213f612115600a5460105461335190919063ffffffff16565b6121209060026147e3565b306000908152602081815260408083208c845290915290205490613351565b10156121815760405162461bcd60e51b815260206004820152601160248201527034b739bab33334b1b4b2b73a103a34b2b960791b60448201526064016109c2565b30600090815260208181526040808320898452909152812080548792906121a99084906144fd565b90915550506001600160a01b038716600090815260208181526040808320898452909152812080548792906121df908490614510565b90915550506000868152600c602052604090206002015461220090846132f4565b6000878152600c6020526040902060028101919091558481556006015461222790866132f4565b6000878152600c60208190526040822060068101939093559190910180549161224f83614523565b90915550506000868152600c60205260408120600b018054859290612275908490614510565b90915550506000868152600b602090815260408083206001600160a01b038b16845290915281205460ff161515900361230c576000868152600b602090815260408083206001600160a01b038b16808552908352818420805460ff1916600190811782558b8652600e8552928520805491840182905592810183559184529190922090910180546001600160a01b03191690911790555b6005546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612346573d6000803e3d6000fd5b506064811161238f576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612389573d6000803e3d6000fd5b50612399565b612399818761351c565b60025460405163304f5e2560e01b81526001600160a01b038981166004830152600060248301526044820188905260806064830152600360848301526242757960e81b60a48301529091169063304f5e259060c401600060405180830381600087803b15801561240857600080fd5b505af1158015611e96573d6000803e3d6000fd5b6000828152600c602052604081208054600690910154909182918190815b8681101561250c576000888152600c6020526040812060050154831015612472576000898152600c6020526040902060040154612485565b6000898152600c60205260409020600301545b9050826001146124a8576007546124a390610cca6117a58285613351565b6124bb565b6000898152600c60205260409020600101545b9650826001146124cb57866124df565b6007546124df90610cca6117a58285613351565b6124e99087614510565b95506124f66001846144fd565b925050808061250490614523565b91505061243a565b5061251785856144fd565b6007805460008a8152600c602052604090209091015491955061253f91610cca90879061321a565b6000888152600c6020526040902060060154909350156125a9576007546000888152600c60205260409020600601546125a49161257c919061321a565b6000898152600c6020526040902060080154610cca9061259d908a9061321a565b879061321a565b6125ac565b60005b91505092959194509250565b600e60205281600052604060002081815481106125d457600080fd5b6000918252602090912001546001600160a01b03169150829050565b6002546001600160a01b0316331461261a5760405162461bcd60e51b81526004016109c2906147a0565b8282600081811061262d5761262d6144d1565b6000848152600c6020908152604090912091029290920135909155508282600181811061265c5761265c6144d1565b90506020020135600c60008381526020019081526020016000206001018190555082826002818110612690576126906144d1565b90506020020135600c600083815260200190815260200160002060030181905550828260038181106126c4576126c46144d1565b90506020020135600c600083815260200190815260200160002060040181905550828260048181106126f8576126f86144d1565b90506020020135600c6000838152602001908152602001600020600501819055508282600581811061272c5761272c6144d1565b90506020020135600c60008381526020019081526020016000206009018190555082826006818110612760576127606144d1565b90506020020135600c60008381526020019081526020016000206007018190555082826007818110612794576127946144d1565b90506020020135600c600083815260200190815260200160002060080181905550505050565b6000806000806127ca868661241c565b336000908152602081815260408083208d845290915290205493975091955093509150851180159061280d57506000868152600c60205260409020600901548511155b80156128295750336000908152600d602052604090205460ff16155b61286b5760405162461bcd60e51b81526020600482015260136024820152721a5b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016109c2565b3360009081526020818152604080832089845290915290205461288e9086613351565b336000908152602081815260408083208a8452825280832093909355308252818152828220898352905220546128c490866132f4565b306000908152602081815260408083208a8452825280832093909355600c9052908120600d018054916128f683614523565b90915550506000868152600c60205260408120600b01805485929061291c908490614510565b90915550506000868152600b6020908152604080832033845290915281205460ff16151590036129a1576000868152600b6020908152604080832033808552908352818420805460ff1916600190811782558b8652600e8552928520805491840182905592810183559184529190922090910180546001600160a01b03191690911790555b336000908152602081815260408083208984529091528120549003612b8a576000868152600b60209081526040808320338452808352818420805460ff191681556001908101548b8652600e90945291842080549394919391929091612a0791906144fd565b81548110612a1757612a176144d1565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120600190810194909455898152600e909252902080549091612a5e916144fd565b81548110612a6e57612a6e6144d1565b6000918252602080832090910154888352600e82526040808420600b84528185203386529093529092206001015481546001600160a01b03909316928110612ab857612ab86144d1565b600091825260208083209190910180546001600160a01b0319166001600160a01b039490941693909317909255878152600e90915260409020805480612b0057612b00614668565b600082815260209020600019908201810180546001600160a01b031916905501905560025460405163304f5e2560e01b81526001600160a01b039091169063304f5e2590612b579033906001908a906004016147fa565b600060405180830381600087803b158015612b7157600080fd5b505af1158015612b85573d6000803e3d6000fd5b505050505b6000868152600c60205260409020600a015415801590612bc957506000868152600c602052604081206006810154600a90910154612bc79161329c565b115b15612bd757612bd786613724565b6000868152600c6020526040902060020154612bf39084613351565b6000878152600c60205260409020600281019190915584815560060154612c1a9086613351565b6000878152600c602052604090206006015560648111612c74576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612c6e573d6000803e3d6000fd5b50612c7e565b612c7e818761351c565b6005546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612cb8573d6000803e3d6000fd5b50336108fc612cd1612cca8486614510565b8690613351565b6040518115909202916000818181858888f19350505050158015612cf9573d6000803e3d6000fd5b5060025460405163304f5e2560e01b81526001600160a01b039091169063304f5e2590612d2f9033906000908a906004016147fa565b600060405180830381600087803b158015612d4957600080fd5b505af1158015612d5d573d6000803e3d6000fd5b50505050505050505050565b336001600160a01b0387161480612da357506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b612dbf5760405162461bcd60e51b81526004016109c290614483565b6001600160a01b038516612de55760405162461bcd60e51b81526004016109c2906144a9565b6001600160a01b03861660009081526020818152604080832087845290915281208054859290612e169084906144fd565b90915550506001600160a01b03851660009081526020818152604080832087845290915281208054859290612e4c908490614510565b909155505060408051858152602081018590526001600160a01b03808816929089169133916000805160206149b2833981519152910160405180910390a46001600160a01b0385163b156112145760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e6190612ed29033908b908a908a908a908a90600401614837565b6020604051808303816000875af1158015612ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f159190614622565b6001600160e01b031916146112145760405162461bcd60e51b81526004016109c29061463f565b6000806000612f49613872565b925092509250909192565b6000806000612f61612f3c565b9250925092504683141580612f885750816001600160a01b0316856001600160a01b031614155b80612f935750808414155b612fd55760405162461bcd60e51b815260206004820152601360248201527221b0b73737ba1037bbb7103cb7bab939b2b63360691b60448201526064016109c2565b6000612fdf611f1d565b9050306001600160a01b038216036130095760405162461bcd60e51b81526004016109c29061487e565b60005b6001600160a01b0382163b156131af57816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401606060405180830381865afa925050508015613076575060408051601f3d908101601f19168201909252613073918101906148b0565b60015b156131af57468314158061309c5750896001600160a01b0316826001600160a01b031614155b806130a75750888114155b6130c35760405162461bcd60e51b81526004016109c29061487e565b6040516331a9108f60e11b8152600481018290526001600160a01b03831690636352211e90602401602060405180830381865afa158015613108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312c91906147c6565b9450306001600160a01b038616036131565760405162461bcd60e51b81526004016109c29061487e565b505050806001019050806005036131aa5760405162461bcd60e51b815260206004820152601860248201527704f776e65727368697020636861696e20746f6f20646565760441b60448201526064016109c2565b61300c565b50505050505050565b60008060006131c785856138c5565b50909250905060008160038111156131e1576131e16148e9565b1480156131ff5750856001600160a01b0316826001600160a01b0316145b806132105750613210868686613912565b9695505050505050565b60008260000361322c57506000610912565b600061323883856147e3565b90508261324585836148ff565b1461171f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109c2565b60008082116132ea5760405162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b60448201526064016109c2565b61171f82846148ff565b6000806133018385614510565b90508381101561171f5760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016109c2565b6000828211156133a35760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016109c2565b61171f82846144fd565b60006133b7611f1d565b6001600160a01b0316826001600160a01b0316149050919050565b6001600160a01b0384166133f85760405162461bcd60e51b81526004016109c2906144a9565b6001600160a01b03841660009081526020818152604080832086845290915281208054849290613429908490614510565b909155505060408051848152602081018490526001600160a01b0386169160009133916000805160206149b2833981519152910160405180910390a46001600160a01b0384163b156135165760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e61906134ac903390600090899089908990600401614921565b6020604051808303816000875af11580156134cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ef9190614622565b6001600160e01b031916146135165760405162461bcd60e51b81526004016109c29061463f565b50505050565b60045460009081906001600160a01b0316156135b857613552600754610cca61259d60155460145461335190919063ffffffff16565b915061356f600754610cca6015548761321a90919063ffffffff16565b905080156135b3576004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156135b1573d6000803e3d6000fd5b505b6135d6565b6135d3600754610cca6014548761321a90919063ffffffff16565b91505b8115613618576003546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015613616573d6000803e3d6000fd5b505b6000613635600754610cca6016548861321a90919063ffffffff16565b90508015613679576006546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015613677573d6000803e3d6000fd5b505b6000613696600754610cca6017548961321a90919063ffffffff16565b905080600c6000878152602001908152602001600020600a0160008282546136be9190614510565b90915550506002546001600160a01b03166108fc6136fc84866136e18987614510565b6136eb9190614510565b6136f59190614510565b8990613351565b6040518115909202916000818181858888f193505050501580156131af573d6000803e3d6000fd5b6000818152600c60205260408120600a015490805b6000848152600e602052604090205481101561384d576000848152600c6020908152604080832060060154600e909252822080546137c39291610cca91889186918291908990811061378d5761378d6144d1565b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208c82529092529020549061321a565b9050801561382d576000858152600e602052604090208054839081106137eb576137eb6144d1565b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561382b573d6000803e3d6000fd5b505b6138378184614510565b925050808061384590614523565b915050613739565b506138588282613351565b6000938452600c6020526040909320600a01929092555050565b60408051606080825260808201909252600091829182918291906020820181803683370190505090506060604d60208301303c808060200190518101906138b991906148b0565b93509350935050909192565b600080600083516041036138ff5760208401516040850151606086015160001a6138f1888285856139ed565b95509550955050505061390b565b50508151600091506002905b9250925092565b6000806000856001600160a01b0316858560405160240161393492919061495b565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b17905251613969919061497c565b600060405180830381855afa9150503d80600081146139a4576040519150601f19603f3d011682016040523d82523d6000602084013e6139a9565b606091505b50915091508180156139bd57506020815110155b801561321057508051630b135d3f60e11b906139e29083016020908101908401614998565b149695505050505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03841115613a1e5750600091506003905082613aa8565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613a72573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613a9e57506000925060019150829050613aa8565b9250600091508190505b9450945094915050565b6001600160a01b0381168114613ac757600080fd5b50565b8035613ad581613ab2565b919050565b60008060408385031215613aed57600080fd5b8235613af881613ab2565b946020939093013593505050565b6001600160e01b031981168114613ac757600080fd5b600060208284031215613b2e57600080fd5b813561171f81613b06565b600060208284031215613b4b57600080fd5b813561171f81613ab2565b600060208284031215613b6857600080fd5b5035919050565b60005b83811015613b8a578181015183820152602001613b72565b50506000910152565b60008151808452613bab816020860160208601613b6f565b601f01601f19169290920160200192915050565b60208152600061171f6020830184613b93565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613c1057613c10613bd2565b604052919050565b600082601f830112613c2957600080fd5b81356001600160401b03811115613c4257613c42613bd2565b613c55601f8201601f1916602001613be8565b818152846020838601011115613c6a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613c9d57600080fd5b8435613ca881613ab2565b93506020850135613cb881613ab2565b92506040850135915060608501356001600160401b03811115613cda57600080fd5b6125ac87828801613c18565b60008060408385031215613cf957600080fd5b8235915060208301356001600160401b03811115613d1657600080fd5b613d2285828601613c18565b9150509250929050565b60008083601f840112613d3e57600080fd5b5081356001600160401b03811115613d5557600080fd5b6020830191508360208260051b8501011115613d7057600080fd5b9250929050565b60008083601f840112613d8957600080fd5b5081356001600160401b03811115613da057600080fd5b602083019150836020828501011115613d7057600080fd5b60008060008060008060008060a0898b031215613dd457600080fd5b8835613ddf81613ab2565b97506020890135613def81613ab2565b965060408901356001600160401b0380821115613e0b57600080fd5b613e178c838d01613d2c565b909850965060608b0135915080821115613e3057600080fd5b613e3c8c838d01613d2c565b909650945060808b0135915080821115613e5557600080fd5b50613e628b828c01613d77565b999c989b5096995094979396929594505050565b80358015158114613ad557600080fd5b60008060408385031215613e9957600080fd5b82359150613ea960208401613e76565b90509250929050565b60008060008060408587031215613ec857600080fd5b84356001600160401b0380821115613edf57600080fd5b613eeb88838901613d2c565b90965094506020870135915080821115613f0457600080fd5b50613f1187828801613d2c565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5557835183529284019291840191600101613f39565b50909695505050505050565b600080600060408486031215613f7657600080fd5b8335613f8181613ab2565b925060208401356001600160401b03811115613f9c57600080fd5b613fa886828701613d77565b9497909650939450505050565b60008060408385031215613fc857600080fd5b823591506020830135613fda81613ab2565b809150509250929050565b60008060408385031215613ff857600080fd5b50508035926020909101359150565b60008060006060848603121561401c57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060008060008060006101008c8e03121561405557600080fd5b61405e8c613aca565b9a5061406c60208d01613aca565b995061407a60408d01613aca565b985061408860608d01613aca565b975060808c013596506001600160401b0360a08d01358110156140aa57600080fd5b6140ba8e60a08f01358f01613d2c565b909750955060c08d01358110156140d057600080fd5b6140e08e60c08f01358f01613d2c565b909550935060e08d01358110156140f657600080fd5b506141078d60e08e01358e01613d2c565b81935080925050509295989b509295989b9093969950565b60008060008060008060008060008060006101608c8e03121561414157600080fd5b8b3561414c81613ab2565b9d60208d01359d5060408d01359c60608101359c5060808101359b5060a08101359a5060c0810135995060e08101359850610100810135975061012081013596506101400135945092505050565b600080604083850312156141ad57600080fd5b82356141b881613ab2565b9150613ea960208401613e76565b6000806000606084860312156141db57600080fd5b83356141e681613ab2565b95602085013595506040909401359392505050565b60008060006040848603121561421057600080fd5b83356001600160401b0381111561422657600080fd5b61423286828701613d2c565b909790965060209590950135949350505050565b600082601f83011261425757600080fd5b813560206001600160401b0382111561427257614272613bd2565b8160051b614281828201613be8565b928352848101820192828101908785111561429b57600080fd5b83870192505b848310156142ba578235825291830191908301906142a1565b979650505050505050565b600080600080600060a086880312156142dd57600080fd5b85356142e881613ab2565b945060208601356142f881613ab2565b935060408601356001600160401b038082111561431457600080fd5b61432089838a01614246565b9450606088013591508082111561433657600080fd5b61434289838a01614246565b9350608088013591508082111561435857600080fd5b5061436588828901613c18565b9150509295509295909350565b6000806040838503121561438557600080fd5b823561439081613ab2565b91506020830135613fda81613ab2565b600080600080600060a086880312156143b857600080fd5b85356143c381613ab2565b945060208601356143d381613ab2565b9350604086013592506060860135915060808601356001600160401b038111156143fc57600080fd5b61436588828901613c18565b60008060008060008060a0878903121561442157600080fd5b863561442c81613ab2565b9550602087013561443c81613ab2565b9450604087013593506060870135925060808701356001600160401b0381111561446557600080fd5b61447189828a01613d77565b979a9699509497509295939492505050565b6020808252600c908201526b1b9bdd08185c1c1c9bdd995960a21b604082015260600190565b6020808252600e908201526d746f203d2030206164647265737360901b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610912576109126144e7565b80820180821115610912576109126144e7565b600060018201614535576145356144e7565b5060010190565b81835260006001600160fb1b0383111561455557600080fd5b8260051b80836020870137939093016020019392505050565b60408152600061458260408301868861453c565b82810360208401526142ba81858761453c565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a0604082018190526000906145eb908301888a61453c565b82810360608401526145fe81878961453c565b90508281036080840152614613818587614595565b9b9a5050505050505050505050565b60006020828403121561463457600080fd5b815161171f81613b06565b6020808252600f908201526e3ab739b0b332903a3930b739b332b960891b604082015260600190565b634e487b7160e01b600052603160045260246000fd5b600181815b808511156146b957816000190482111561469f5761469f6144e7565b808516156146ac57918102915b93841c9390800290614683565b509250929050565b6000826146d057506001610912565b816146dd57506000610912565b81600181146146f357600281146146fd57614719565b6001915050610912565b60ff84111561470e5761470e6144e7565b50506001821b610912565b5060208310610133831016604e8410600b841016171561473c575081810a610912565b614746838361467e565b806000190482111561475a5761475a6144e7565b029392505050565b600061171f83836146c1565b6020808252601890820152771a5b9cdd59999a58da595b9d08199c9bdb48185b5bdd5b9d60421b604082015260600190565b6020808252600c908201526b6f6e6c7920666163746f727960a01b604082015260600190565b6000602082840312156147d857600080fd5b815161171f81613ab2565b8082028115828204841417610912576109126144e7565b6001600160a01b03939093168352901515602083015260408201526080606082018190526004908201526314d95b1b60e21b60a082015260c00190565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906148729083018486614595565b98975050505050505050565b6020808252601890820152772a37b5b2b71034b71037bbb732b939b434b81031b430b4b760411b604082015260600190565b6000806000606084860312156148c557600080fd5b8351925060208401516148d781613ab2565b80925050604084015190509250925092565b634e487b7160e01b600052602160045260246000fd5b60008261491c57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906142ba90830184613b93565b8281526040602082015260006149746040830184613b93565b949350505050565b6000825161498e818460208701613b6f565b9190910192915050565b6000602082840312156149aa57600080fd5b505191905056fec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f625b84bb9e0f5aa9cc45a8bb66468db5d4816d1e75ff86b5e1f1dd8d144dab80995b84bb9e0f5aa9cc45a8bb66468db5d4816d1e75ff86b5e1f1dd8d144dab809712d0c11577e2f0950f57c455c117796550b79f444811db8ba2f69c57b646c784a1d6913cd9e08c872be3e7525cca82e4fc0fc298a783f19022be725b19be685aa2646970667358221220220acfb48c9f66721d6b8b9a9ebabde2ad8449a4061a278bd6ea83009f978fa364736f6c634300081100330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a8690000000000000000000000005314d7cbe9bacfb8f934a9aa769249f312ff045c0000000000000000000000000000000000000000000000000000000000000000