[ { "inputs": [ { "internalType": "address", "name": "_royAddr", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "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": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" } ], "name": "MintEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ts", "type": "uint256" } ], "name": "PurchaseEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "isForSale", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ts", "type": "uint256" } ], "name": "SaleToggle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "adminMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "buyToken", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "collectible", "outputs": [ { "internalType": "uint24", "name": "id", "type": "uint24" }, { "internalType": "uint24", "name": "numOfTransfer", "type": "uint24" }, { "internalType": "address", "name": "mintedBy", "type": "address" }, { "internalType": "address", "name": "currOwner", "type": "address" }, { "internalType": "uint256", "name": "prePrice", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "bool", "name": "forSale", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royAddr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royaltyPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "amount", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_supply", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setOpenMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_newPrice", "type": "uint256" }, { "internalType": "bool", "name": "isForSale", "type": "bool" } ], "name": "setPriceForSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052603d600e556000601060006101000a81548160ff0219169083151502179055503480156200003157600080fd5b5060405162006021380380620060218339818101604052810190620000579190620004bf565b6040518060400160405280600b81526020017f4368696b6e2044726970730000000000000000000000000000000000000000008152506040518060400160405280600581526020017f44726970730000000000000000000000000000000000000000000000000000008152508160009080519060200190620000db929190620003f8565b508060019080519060200190620000f4929190620003f8565b505050620001176200010b6200017c60201b60201c565b6200018460201b60201c565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200016c816102586200024a60201b60201c565b61025860118190555050620006c4565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200025a620003ee60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115620002bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b2906200053f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200032e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003259062000561565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600b60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b8280546200040690620005c8565b90600052602060002090601f0160209004810192826200042a576000855562000476565b82601f106200044557805160ff191683800117855562000476565b8280016001018555821562000476579182015b828111156200047557825182559160200191906001019062000458565b5b50905062000485919062000489565b5090565b5b80821115620004a45760008160009055506001016200048a565b5090565b600081519050620004b981620006aa565b92915050565b600060208284031215620004d857620004d76200062d565b5b6000620004e884828501620004a8565b91505092915050565b600062000500602a8362000583565b91506200050d8262000632565b604082019050919050565b60006200052760198362000583565b9150620005348262000681565b602082019050919050565b600060208201905081810360008301526200055a81620004f1565b9050919050565b600060208201905081810360008301526200057c8162000518565b9050919050565b600082825260208201905092915050565b6000620005a182620005a8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006002820490506001821680620005e157607f821691505b60208210811415620005f857620005f7620005fe565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b620006b58162000594565b8114620006c157600080fd5b50565b61594d80620006d46000396000f3fe6080604052600436106101ee5760003560e01c806355f804b31161010d57806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146106f3578063d5abeb0114610730578063e2af30f41461075b578063e985e9c514610784578063f2fde38b146107c1576101ee565b806395d89b411461064d5780639769dc0e14610678578063a22cb465146106a1578063b88d4fde146106ca576101ee565b8063715018a6116100dc578063715018a6146105b75780637eb01a58146105ce5780638a71bb2d146105f75780638da5cb5b14610622576101ee565b806355f804b3146104eb5780636352211e146105145780636f8b44b01461055157806370a082311461057a576101ee565b806323b872dd116101855780632f745c59116101545780632f745c591461040557806342842e0e146104425780634f6ccce71461046b57806353dc2159146104a8576101ee565b806323b872dd1461035757806324bbd049146103805780632a55205a146103ab5780632d296bf1146103e9576101ee565b8063095ea7b3116101c1578063095ea7b3146102c15780631249c58b146102ea57806318160ddd146103015780631efe3dc01461032c576101ee565b806301ffc9a7146101f357806304634d8d1461023057806306fdde0314610259578063081812fc14610284575b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906140c8565b6107ea565b60405161022791906147b5565b60405180910390f35b34801561023c57600080fd5b506102576004803603810190610252919061405b565b6107fc565b005b34801561026557600080fd5b5061026e61094c565b60405161027b91906147d0565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a6919061416b565b6109de565b6040516102b89190614725565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e3919061401b565b610a63565b005b3480156102f657600080fd5b506102ff610b7b565b005b34801561030d57600080fd5b50610316610dd1565b6040516103239190614c01565b60405180910390f35b34801561033857600080fd5b50610341610dde565b60405161034e9190614725565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190613f05565b610e04565b005b34801561038c57600080fd5b50610395610e64565b6040516103a291906147b5565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190614198565b610e77565b6040516103e092919061478c565b60405180910390f35b61040360048036038101906103fe919061416b565b611062565b005b34801561041157600080fd5b5061042c6004803603810190610427919061401b565b611587565b6040516104399190614c01565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190613f05565b61162c565b005b34801561047757600080fd5b50610492600480360381019061048d919061416b565b61164c565b60405161049f9190614c01565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca919061416b565b6116bd565b6040516104e29796959493929190614b92565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190614122565b61176a565b005b34801561052057600080fd5b5061053b6004803603810190610536919061416b565b611800565b6040516105489190614725565b60405180910390f35b34801561055d57600080fd5b506105786004803603810190610573919061416b565b6118b2565b005b34801561058657600080fd5b506105a1600480360381019061059c9190613e98565b611938565b6040516105ae9190614c01565b60405180910390f35b3480156105c357600080fd5b506105cc6119f0565b005b3480156105da57600080fd5b506105f560048036038101906105f091906141d8565b611a78565b005b34801561060357600080fd5b5061060c611dff565b6040516106199190614c01565b60405180910390f35b34801561062e57600080fd5b50610637611e05565b6040516106449190614725565b60405180910390f35b34801561065957600080fd5b50610662611e2f565b60405161066f91906147d0565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190613e98565b611ec1565b005b3480156106ad57600080fd5b506106c860048036038101906106c39190613fdb565b612145565b005b3480156106d657600080fd5b506106f160048036038101906106ec9190613f58565b61215b565b005b3480156106ff57600080fd5b5061071a6004803603810190610715919061416b565b6121bd565b60405161072791906147d0565b60405180910390f35b34801561073c57600080fd5b506107456121cf565b6040516107529190614c01565b60405180910390f35b34801561076757600080fd5b50610782600480360381019061077d919061409b565b6121d5565b005b34801561079057600080fd5b506107ab60048036038101906107a69190613ec5565b61226e565b6040516107b891906147b5565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e39190613e98565b612302565b005b60006107f5826123fa565b9050919050565b610804612474565b73ffffffffffffffffffffffffffffffffffffffff16610822611e05565b73ffffffffffffffffffffffffffffffffffffffff1614610878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086f90614a12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df90614b32565b60405180910390fd5b81600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610933828261247c565b806bffffffffffffffffffffffff166011819055505050565b60606000805461095b90614fa9565b80601f016020809104026020016040519081016040528092919081815260200182805461098790614fa9565b80156109d45780601f106109a9576101008083540402835291602001916109d4565b820191906000526020600020905b8154815290600101906020018083116109b757829003601f168201915b5050505050905090565b60006109e982612612565b610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f906149f2565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a6e82611800565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad690614a72565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610afe612474565b73ffffffffffffffffffffffffffffffffffffffff161480610b2d5750610b2c81610b27612474565b61226e565b5b610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6390614952565b60405180910390fd5b610b76838361267e565b505050565b601060009054906101000a900460ff16610bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc190614a92565b60405180910390fd5b600e54610bd5610dd1565b10610c15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0c90614ad2565b60405180910390fd5b60006001610c21610dd1565b610c2b9190614db7565b9050610c373382612737565b60006040518060e001604052808362ffffff168152602001600062ffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152509050806012600084815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548162ffffff021916908362ffffff16021790555060408201518160000160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816002015560a0820151816003015560c08201518160040160006101000a81548160ff0219169083151502179055509050505050565b6000600880549050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e15610e0f612474565b82612755565b610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90614ab2565b60405180910390fd5b610e5f838383612833565b505050565b601060009054906101000a900460ff1681565b6000806000600c60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16141561100d57600b6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000611017612a9a565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866110439190614e3e565b61104d9190614e0d565b90508160000151819350935050509250929050565b600061106d82611800565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d690614872565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561114e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611145906149d2565b60405180910390fd5b6000601260008481526020019081526020016000206040518060e00160405290816000820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160039054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff16151515158152505090508060a001513410156112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf90614932565b60405180910390fd5b8060c0015161131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390614a32565b60405180910390fd5b60003490506000612710601154836113349190614e3e565b61133e9190614e0d565b90506000818361134e9190614e98565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156113b8573d6000803e3d6000fd5b508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113ff573d6000803e3d6000fd5b508360a00151846080018181525050836012600088815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548162ffffff021916908362ffffff16021790555060408201518160000160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816002015560a0820151816003015560c08201518160040160006101000a81548160ff02191690831515021790555090505061153c853388612833565b7f08924678056497e7b16f05c6afd439f90adf77a23b24b36cfda3fa6750fd08128686338760a0015142604051611577959493929190614c1c565b60405180910390a1505050505050565b600061159283611938565b82106115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca90614812565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6116478383836040518060200160405280600081525061215b565b505050565b6000611656610dd1565b8210611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e90614af2565b60405180910390fd5b600882815481106116ab576116aa615142565b5b90600052602060002001549050919050565b60126020528060005260406000206000915090508060000160009054906101000a900462ffffff16908060000160039054906101000a900462ffffff16908060000160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040160009054906101000a900460ff16905087565b611772612474565b73ffffffffffffffffffffffffffffffffffffffff16611790611e05565b73ffffffffffffffffffffffffffffffffffffffff16146117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd90614a12565b60405180910390fd5b80600f90805190602001906117fc929190613c97565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a090614992565b60405180910390fd5b80915050919050565b6118ba612474565b73ffffffffffffffffffffffffffffffffffffffff166118d8611e05565b73ffffffffffffffffffffffffffffffffffffffff161461192e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192590614a12565b60405180910390fd5b80600e8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a090614972565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119f8612474565b73ffffffffffffffffffffffffffffffffffffffff16611a16611e05565b73ffffffffffffffffffffffffffffffffffffffff1614611a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6390614a12565b60405180910390fd5b611a766000612aa4565b565b611a8183612612565b611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790614b52565b60405180910390fd5b6000611acb84611800565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b32906147f2565b60405180910390fd5b6000601260008681526020019081526020016000206040518060e00160405290816000820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160039054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815250509050838160a0018181525050828160c0019015159081151581525050806012600087815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548162ffffff021916908362ffffff16021790555060408201518160000160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816002015560a0820151816003015560c08201518160040160006101000a81548160ff0219169083151502179055509050507fe8aa32921eb7375cb65d9f580abe313b9debc6eadf8433c07c24c7bb7eceeda285848642604051611df09493929190614c6f565b60405180910390a15050505050565b60115481565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054611e3e90614fa9565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6a90614fa9565b8015611eb75780601f10611e8c57610100808354040283529160200191611eb7565b820191906000526020600020905b815481529060010190602001808311611e9a57829003601f168201915b5050505050905090565b611ec9612474565b73ffffffffffffffffffffffffffffffffffffffff16611ee7611e05565b73ffffffffffffffffffffffffffffffffffffffff1614611f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3490614a12565b60405180910390fd5b600e54611f48610dd1565b10611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f90614ad2565b60405180910390fd5b60006001611f94610dd1565b611f9e9190614db7565b9050611faa8282612737565b60006040518060e001604052808362ffffff168152602001600062ffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600015158152509050806012600084815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548162ffffff021916908362ffffff16021790555060408201518160000160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816002015560a0820151816003015560c08201518160040160006101000a81548160ff021916908315150217905550905050505050565b612157612150612474565b8383612b6a565b5050565b61216c612166612474565b83612755565b6121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290614ab2565b60405180910390fd5b6121b784848484612cd7565b50505050565b60606121c882612d33565b9050919050565b600e5481565b6121dd612474565b73ffffffffffffffffffffffffffffffffffffffff166121fb611e05565b73ffffffffffffffffffffffffffffffffffffffff1614612251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224890614a12565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61230a612474565b73ffffffffffffffffffffffffffffffffffffffff16612328611e05565b73ffffffffffffffffffffffffffffffffffffffff161461237e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237590614a12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156123ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e590614852565b60405180910390fd5b6123f781612aa4565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061246d575061246c82612dda565b5b9050919050565b600033905090565b612484612a9a565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156124e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d990614b12565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254990614b72565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600b60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166126f183611800565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b612751828260405180602001604052806000815250612e54565b5050565b600061276082612612565b61279f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279690614912565b60405180910390fd5b60006127aa83611800565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061281957508373ffffffffffffffffffffffffffffffffffffffff16612801846109de565b73ffffffffffffffffffffffffffffffffffffffff16145b8061282a5750612829818561226e565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661285382611800565b73ffffffffffffffffffffffffffffffffffffffff16146128a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a090614892565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612910906148d2565b60405180910390fd5b612924838383612eaf565b61292f60008261267e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461297f9190614e98565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129d69190614db7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a958383836131a0565b505050565b6000612710905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd0906148f2565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612cca91906147b5565b60405180910390a3505050565b612ce2848484612833565b612cee848484846131a5565b612d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d2490614832565b60405180910390fd5b50505050565b6060612d3e82612612565b612d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7490614a52565b60405180910390fd5b6000612d8761333c565b90506000815111612da75760405180602001604052806000815250612dd2565b80612db1846133ce565b604051602001612dc2929190614701565b6040516020818303038152906040525b915050919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612e4d5750612e4c8261352f565b5b9050919050565b612e5e8383613611565b612e6b60008484846131a5565b612eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea190614832565b60405180910390fd5b505050565b612eba8383836137eb565b6000601260008381526020019081526020016000206040518060e00160405290816000820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160039054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581525050905082816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001816020018181516130489190614d7e565b91509062ffffff16908162ffffff168152505060008160a001818152505060008160c0019015159081151581525050806012600084815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548162ffffff021916908362ffffff16021790555060408201518160000160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816002015560a0820151816003015560c08201518160040160006101000a81548160ff02191690831515021790555090505050505050565b505050565b60006131c68473ffffffffffffffffffffffffffffffffffffffff166138ff565b1561332f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026131ef612474565b8786866040518563ffffffff1660e01b81526004016132119493929190614740565b602060405180830381600087803b15801561322b57600080fd5b505af192505050801561325c57506040513d601f19601f8201168201806040525081019061325991906140f5565b60015b6132df573d806000811461328c576040519150601f19603f3d011682016040523d82523d6000602084013e613291565b606091505b506000815114156132d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ce90614832565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613334565b600190505b949350505050565b6060600f805461334b90614fa9565b80601f016020809104026020016040519081016040528092919081815260200182805461337790614fa9565b80156133c45780601f10613399576101008083540402835291602001916133c4565b820191906000526020600020905b8154815290600101906020018083116133a757829003601f168201915b5050505050905090565b60606000821415613416576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061352a565b600082905060005b600082146134485780806134319061500c565b915050600a826134419190614e0d565b915061341e565b60008167ffffffffffffffff81111561346457613463615171565b5b6040519080825280601f01601f1916602001820160405280156134965781602001600182028036833780820191505090505b5090505b60008514613523576001826134af9190614e98565b9150600a856134be9190615055565b60306134ca9190614db7565b60f81b8183815181106134e0576134df615142565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561351c9190614e0d565b945061349a565b8093505050505b919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806135fa57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061360a575061360982613922565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613681576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613678906149b2565b60405180910390fd5b61368a81612612565b156136ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c1906148b2565b60405180910390fd5b6136d660008383612eaf565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546137269190614db7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46137e7600083836131a0565b5050565b6137f683838361398c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156138395761383481613991565b613878565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146138775761387683826139da565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156138bb576138b681613b47565b6138fa565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146138f9576138f88282613c18565b5b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016139e784611938565b6139f19190614e98565b9050600060076000848152602001908152602001600020549050818114613ad6576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050613b5b9190614e98565b9050600060096000848152602001908152602001600020549050600060088381548110613b8b57613b8a615142565b5b906000526020600020015490508060088381548110613bad57613bac615142565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613bfc57613bfb615113565b5b6001900381819060005260206000200160009055905550505050565b6000613c2383611938565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b828054613ca390614fa9565b90600052602060002090601f016020900481019282613cc55760008555613d0c565b82601f10613cde57805160ff1916838001178555613d0c565b82800160010185558215613d0c579182015b82811115613d0b578251825591602001919060010190613cf0565b5b509050613d199190613d1d565b5090565b5b80821115613d36576000816000905550600101613d1e565b5090565b6000613d4d613d4884614cd9565b614cb4565b905082815260208101848484011115613d6957613d686151a5565b5b613d74848285614f67565b509392505050565b6000613d8f613d8a84614d0a565b614cb4565b905082815260208101848484011115613dab57613daa6151a5565b5b613db6848285614f67565b509392505050565b600081359050613dcd816158a4565b92915050565b600081359050613de2816158bb565b92915050565b600081359050613df7816158d2565b92915050565b600081519050613e0c816158d2565b92915050565b600082601f830112613e2757613e266151a0565b5b8135613e37848260208601613d3a565b91505092915050565b600082601f830112613e5557613e546151a0565b5b8135613e65848260208601613d7c565b91505092915050565b600081359050613e7d816158e9565b92915050565b600081359050613e9281615900565b92915050565b600060208284031215613eae57613ead6151af565b5b6000613ebc84828501613dbe565b91505092915050565b60008060408385031215613edc57613edb6151af565b5b6000613eea85828601613dbe565b9250506020613efb85828601613dbe565b9150509250929050565b600080600060608486031215613f1e57613f1d6151af565b5b6000613f2c86828701613dbe565b9350506020613f3d86828701613dbe565b9250506040613f4e86828701613e6e565b9150509250925092565b60008060008060808587031215613f7257613f716151af565b5b6000613f8087828801613dbe565b9450506020613f9187828801613dbe565b9350506040613fa287828801613e6e565b925050606085013567ffffffffffffffff811115613fc357613fc26151aa565b5b613fcf87828801613e12565b91505092959194509250565b60008060408385031215613ff257613ff16151af565b5b600061400085828601613dbe565b925050602061401185828601613dd3565b9150509250929050565b60008060408385031215614032576140316151af565b5b600061404085828601613dbe565b925050602061405185828601613e6e565b9150509250929050565b60008060408385031215614072576140716151af565b5b600061408085828601613dbe565b925050602061409185828601613e83565b9150509250929050565b6000602082840312156140b1576140b06151af565b5b60006140bf84828501613dd3565b91505092915050565b6000602082840312156140de576140dd6151af565b5b60006140ec84828501613de8565b91505092915050565b60006020828403121561410b5761410a6151af565b5b600061411984828501613dfd565b91505092915050565b600060208284031215614138576141376151af565b5b600082013567ffffffffffffffff811115614156576141556151aa565b5b61416284828501613e40565b91505092915050565b600060208284031215614181576141806151af565b5b600061418f84828501613e6e565b91505092915050565b600080604083850312156141af576141ae6151af565b5b60006141bd85828601613e6e565b92505060206141ce85828601613e6e565b9150509250929050565b6000806000606084860312156141f1576141f06151af565b5b60006141ff86828701613e6e565b935050602061421086828701613e6e565b925050604061422186828701613dd3565b9150509250925092565b61423481614ecc565b82525050565b61424381614ede565b82525050565b600061425482614d3b565b61425e8185614d51565b935061426e818560208601614f76565b614277816151b4565b840191505092915050565b600061428d82614d46565b6142978185614d62565b93506142a7818560208601614f76565b6142b0816151b4565b840191505092915050565b60006142c682614d46565b6142d08185614d73565b93506142e0818560208601614f76565b80840191505092915050565b60006142f9600283614d62565b9150614304826151c5565b602082019050919050565b600061431c602b83614d62565b9150614327826151ee565b604082019050919050565b600061433f603283614d62565b915061434a8261523d565b604082019050919050565b6000614362602683614d62565b915061436d8261528c565b604082019050919050565b6000614385600383614d62565b9150614390826152db565b602082019050919050565b60006143a8602583614d62565b91506143b382615304565b604082019050919050565b60006143cb601c83614d62565b91506143d682615353565b602082019050919050565b60006143ee602483614d62565b91506143f98261537c565b604082019050919050565b6000614411601983614d62565b915061441c826153cb565b602082019050919050565b6000614434602c83614d62565b915061443f826153f4565b604082019050919050565b6000614457600383614d62565b915061446282615443565b602082019050919050565b600061447a603883614d62565b91506144858261546c565b604082019050919050565b600061449d602a83614d62565b91506144a8826154bb565b604082019050919050565b60006144c0602983614d62565b91506144cb8261550a565b604082019050919050565b60006144e3602083614d62565b91506144ee82615559565b602082019050919050565b6000614506600583614d62565b915061451182615582565b602082019050919050565b6000614529602c83614d62565b9150614534826155ab565b604082019050919050565b600061454c602083614d62565b9150614557826155fa565b602082019050919050565b600061456f600483614d62565b915061457a82615623565b602082019050919050565b6000614592602f83614d62565b915061459d8261564c565b604082019050919050565b60006145b5602183614d62565b91506145c08261569b565b604082019050919050565b60006145d8600d83614d62565b91506145e3826156ea565b602082019050919050565b60006145fb603183614d62565b915061460682615713565b604082019050919050565b600061461e601283614d62565b915061462982615762565b602082019050919050565b6000614641602c83614d62565b915061464c8261578b565b604082019050919050565b6000614664602a83614d62565b915061466f826157da565b604082019050919050565b6000614687601683614d62565b915061469282615829565b602082019050919050565b60006146aa600283614d62565b91506146b582615852565b602082019050919050565b60006146cd601983614d62565b91506146d88261587b565b602082019050919050565b6146ec81614f36565b82525050565b6146fb81614f45565b82525050565b600061470d82856142bb565b915061471982846142bb565b91508190509392505050565b600060208201905061473a600083018461422b565b92915050565b6000608082019050614755600083018761422b565b614762602083018661422b565b61476f60408301856146f2565b81810360608301526147818184614249565b905095945050505050565b60006040820190506147a1600083018561422b565b6147ae60208301846146f2565b9392505050565b60006020820190506147ca600083018461423a565b92915050565b600060208201905081810360008301526147ea8184614282565b905092915050565b6000602082019050818103600083015261480b816142ec565b9050919050565b6000602082019050818103600083015261482b8161430f565b9050919050565b6000602082019050818103600083015261484b81614332565b9050919050565b6000602082019050818103600083015261486b81614355565b9050919050565b6000602082019050818103600083015261488b81614378565b9050919050565b600060208201905081810360008301526148ab8161439b565b9050919050565b600060208201905081810360008301526148cb816143be565b9050919050565b600060208201905081810360008301526148eb816143e1565b9050919050565b6000602082019050818103600083015261490b81614404565b9050919050565b6000602082019050818103600083015261492b81614427565b9050919050565b6000602082019050818103600083015261494b8161444a565b9050919050565b6000602082019050818103600083015261496b8161446d565b9050919050565b6000602082019050818103600083015261498b81614490565b9050919050565b600060208201905081810360008301526149ab816144b3565b9050919050565b600060208201905081810360008301526149cb816144d6565b9050919050565b600060208201905081810360008301526149eb816144f9565b9050919050565b60006020820190508181036000830152614a0b8161451c565b9050919050565b60006020820190508181036000830152614a2b8161453f565b9050919050565b60006020820190508181036000830152614a4b81614562565b9050919050565b60006020820190508181036000830152614a6b81614585565b9050919050565b60006020820190508181036000830152614a8b816145a8565b9050919050565b60006020820190508181036000830152614aab816145cb565b9050919050565b60006020820190508181036000830152614acb816145ee565b9050919050565b60006020820190508181036000830152614aeb81614611565b9050919050565b60006020820190508181036000830152614b0b81614634565b9050919050565b60006020820190508181036000830152614b2b81614657565b9050919050565b60006020820190508181036000830152614b4b8161467a565b9050919050565b60006020820190508181036000830152614b6b8161469d565b9050919050565b60006020820190508181036000830152614b8b816146c0565b9050919050565b600060e082019050614ba7600083018a6146e3565b614bb460208301896146e3565b614bc1604083018861422b565b614bce606083018761422b565b614bdb60808301866146f2565b614be860a08301856146f2565b614bf560c083018461423a565b98975050505050505050565b6000602082019050614c1660008301846146f2565b92915050565b600060a082019050614c3160008301886146f2565b614c3e602083018761422b565b614c4b604083018661422b565b614c5860608301856146f2565b614c6560808301846146f2565b9695505050505050565b6000608082019050614c8460008301876146f2565b614c91602083018661423a565b614c9e60408301856146f2565b614cab60608301846146f2565b95945050505050565b6000614cbe614ccf565b9050614cca8282614fdb565b919050565b6000604051905090565b600067ffffffffffffffff821115614cf457614cf3615171565b5b614cfd826151b4565b9050602081019050919050565b600067ffffffffffffffff821115614d2557614d24615171565b5b614d2e826151b4565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614d8982614f36565b9150614d9483614f36565b92508262ffffff03821115614dac57614dab615086565b5b828201905092915050565b6000614dc282614f45565b9150614dcd83614f45565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614e0257614e01615086565b5b828201905092915050565b6000614e1882614f45565b9150614e2383614f45565b925082614e3357614e326150b5565b5b828204905092915050565b6000614e4982614f45565b9150614e5483614f45565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614e8d57614e8c615086565b5b828202905092915050565b6000614ea382614f45565b9150614eae83614f45565b925082821015614ec157614ec0615086565b5b828203905092915050565b6000614ed782614f16565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015614f94578082015181840152602081019050614f79565b83811115614fa3576000848401525b50505050565b60006002820490506001821680614fc157607f821691505b60208210811415614fd557614fd46150e4565b5b50919050565b614fe4826151b4565b810181811067ffffffffffffffff8211171561500357615002615171565b5b80604052505050565b600061501782614f45565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561504a57615049615086565b5b600182019050919050565b600061506082614f45565b915061506b83614f45565b92508261507b5761507a6150b5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e4f000000000000000000000000000000000000000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4144300000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4645450000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f574e4544000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f53414c4500000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74206e6f74206f70656e00000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f4d617820737570706c7920726561636865640000000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f4d757374206e6f74206265206164647265737328302900000000000000000000600082015250565b7f4e45000000000000000000000000000000000000000000000000000000000000600082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6158ad81614ecc565b81146158b857600080fd5b50565b6158c481614ede565b81146158cf57600080fd5b50565b6158db81614eea565b81146158e657600080fd5b50565b6158f281614f45565b81146158fd57600080fd5b50565b61590981614f4f565b811461591457600080fd5b5056fea2646970667358221220ce8c1d459830c11fd031687c90fd0189fb5cb31d4bf151c7611f7fdaac0387f364736f6c634300080700330000000000000000000000005a52b8035c755f81bc516c910e642781e2c10a55